我刚刚在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,然后读取取代machine.config的web.config。但在某些情况下,web.config中的值会被追加或包含在列表中,因此可能会有点难以理解。

但是在工作服务器上仔细阅读machine.config可能会为你带来更多亮点。

其他提示

Machine.Config保存与整个计算机相关的设置。 Machine.Config的某些元素允许您覆盖它们。如果元素具有allowOverride = "true"属性,则可以覆盖web.config。但是,如果它适用于其他机器,我会查看machine.config文件中的差异。

请记住,编辑machine.config esp通常不是一个好主意。如果您打算部署到多台计算机上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top