Вопрос

Я только что установил приложение на сервер win2003 и получаю эту ошибку:

Line 149:    <roleManager>
Line 150:      <providers>
Line 151:        <add name="AspNetSqlRoleProvider" connectionStringName="LocalSqlServer" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Line 152:        <add name="AspNetWindowsTokenRoleProvider" applicationName="/" type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
Line 153:      </providers>


Source File: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config    Line: 151 

Я использую RoleProvider, и он правильно настроен в web.config (он работает на других серверах) следующим образом:

<membership defaultProvider="AdminMembershipProvider">
  <providers>
    <clear/>
    <add name="AdminMembershipProvider" connectionStringName="SiteSqlServer" type="MyApp.Providers.AdminMembershipProvider" applicationName="MyApp" writeExceptionsToEventLog="false" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" PasswordFormat="Clear" MinRequiredNonAlphanumericCharacters="1" MinRequiredPasswordLength="8" MaxInvalidPasswordAttempts="5" PasswordAttemptWindow="10">
    </add>
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="AdminRoleProvider" cacheRolesInCookie="true">
  <providers>
    <add name="AdminRoleProvider" type="MyApp.Providers.AdminRoleProvider" writeExceptionsToEventLog="true"/>
  </providers>
</roleManager>

Любой намек на то, почему он ищет конфигурацию на machine.config вместо web.config? Как я могу отладить это?

Спасибо.

Это было полезно?

Решение

На самом деле сначала читается machine.config, затем ваш web.config, который заменяет machine.config. Но в некоторых случаях значения в файле web.config добавляются или включаются в список, поэтому им может быть немного сложно следовать.

Но просмотр machine.config на работающем сервере может пролить свет на вас.

Другие советы

Machine.Config содержит настройки, относящиеся ко всему компьютеру. Некоторые элементы Machine.Config позволяют переопределять их. Если элемент имеет атрибут allowOverride = " true " , его можно переопределить в файле web.config. Однако, если он работает на других машинах, я бы посмотрел на различия в файлах machine.config.

Имейте в виду, что редактировать machine.config esp обычно не очень хорошая идея. если вы планируете развертывание на нескольких машинах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top