0

我刚刚在 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 上寻找配置的任何提示?我该如何调试呢?

谢谢你。

4

2 回答 2

1

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

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

于 2008-11-19T11:03:33.773 回答
1

事实上,它首先读取 machine.config,然后是取代 machine.config 的 web.config。但在某些情况下,web.config 中的值会附加或包含在列表中,因此可能有点难以理解。

但是在工作服务器上仔细阅读 machine.config 可能会为您提供更多信息。

于 2008-11-19T11:59:57.573 回答