我刚刚在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上查找配置的提示?我该怎么调试呢?
谢谢。
答案 0 :(得分:1)
Machine.Config保存与整个计算机相关的设置。 Machine.Config的某些元素允许您覆盖它们。如果元素具有allowOverride = "true"
属性,则可以覆盖web.config。但是,如果它适用于其他机器,我会查看machine.config文件中的差异。
请记住,编辑machine.config esp通常不是一个好主意。如果您打算部署到多台计算机上。
答案 1 :(得分:1)
确实先读取machine.config,然后读取取代machine.config的web.config。但在某些情况下,web.config中的值会被追加或包含在列表中,因此可能会有点难以理解。
但是在工作服务器上仔细阅读machine.config可能会为你带来更多亮点。