代码之家  ›  专栏  ›  技术社区  ›  pgb

ASPNET角色提供程序出错

  •  0
  • pgb  · 技术社区  · 17 年前

    我刚刚在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 回复  |  直到 17 年前
        1
  •  1
  •   Robert    17 年前

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

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

        2
  •  1
  •   cgreeno    17 年前

    机器。Config包含与整个计算机相关的设置。机器的一些元素。配置允许您覆盖它们。如果一个元素有 allowOverride = "true" 属性它可以被web.config覆盖。但是,如果它在其他机器上工作,我会查看machine.config文件中的差异。

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

    推荐文章