Ошибка с ASPNET RoleProvider

Я только что установил приложение на сервер 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? Как я могу отладить это?

Спасибо.

2 ответа

Решение

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

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

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

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

Другие вопросы по тегам