C# asp.net部署中缺少成员角色?

C# asp.net部署中缺少成员角色?,c#,asp.net,windows-server-2003,C#,Asp.net,Windows Server 2003,我最近在生产服务器上部署了一个asp.net 3.5项目。它使用角色(.net成员身份)。该网站工作(显示页面,我可以登录) 虽然角色在数据库中,但它们在生产服务器上不起作用 我试过这个: string[] roles = Roles.GetAllRoles(); 但它返回一个空字符串 用户和角色与aspnet\u应用程序表中的唯一行相关 ApplicationName:/ LowerApplicationName:/ ApplicationId:5a354523-6cc2-40e7-be1e

我最近在生产服务器上部署了一个asp.net 3.5项目。它使用角色(.net成员身份)。该网站工作(显示页面,我可以登录)

虽然角色在数据库中,但它们在生产服务器上不起作用

我试过这个:

string[] roles = Roles.GetAllRoles();
但它返回一个空字符串

用户和角色与
aspnet\u应用程序
表中的唯一行相关

ApplicationName:/
LowerApplicationName:/
ApplicationId:5a354523-6cc2-40e7-be1e-d40f8e66a041
我认为它不起作用,因为我没有将
applicationName
属性行放在Web.config中

<membership defaultProvider="WAESMembershipProvider">
  <providers>
  <clear />
  <add name="MyMembershipProvider" 
             applicationName="/"
  ...
  </providers>
</membership>


我最近遇到了类似的问题。请检查以下内容:

  • 在数据库中创建的角色是否连接到生产服务器
  • 如果没有,请尝试在生产服务器中使用网站管理工具,以便正确创建角色。这是一篇关于这方面的非常好的文章:
  • 当我使用角色管理器时,我必须在连接到生产服务器的数据库中重新创建模式。为此,您需要对machine.config进行一些更改。i、 e:将autogenerateschema=“true”添加到角色提供程序中,并增加信任级别=“Full”

  • 我不确定您的情况是什么,但我希望这会有所帮助。

    问题可能是因为

    • 您可能尚未复制/插入角色
    • 当应用程序名为/时,您已经复制/添加了它们,因此您可能必须将角色的应用程序id更改/更新为新的,或者使用新的应用程序名创建角色

      我还看到您没有使用默认的成员资格或角色提供程序。如果不使用任何自定义提供程序,请坚持使用提供程序的默认条目(更改应用程序名称除外)

      
      

    是否启用角色管理器?添加“/”表示当前应用程序。所以,这可能是问题的另一个原因。你启用了RoleManager?谢谢aleafonso的链接,我正在寻找一个while@aurahama很乐意帮忙。如果你到时能投赞成票,我将不胜感激。啦啦队员,我没有nowMuthu的特权,当成员资格和配置文件块aplicationName属性上的“使用自动完成”选项出现在上下文菜单中时,但它不会出现在roleManager块中。这意味着什么?自动完成并不重要,也从来不是我可靠的朋友。最简单的方法是在VisualStudio2010中创建一个新的Asp.NETMVC3应用程序,默认情况下,除了应用程序名部分之外,它将为您创建许多这样的应用程序。然后您可以将其与当前配置进行比较并修复它。
    <membership>
      <providers>
       <clear/>
         <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
         enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
         maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
         applicationName="YourAppName" />
      </providers>
    </membership>
    
    <profile>
      <providers>
       <clear/>
       <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="YourAppName" />
      </providers>
     </profile>
    
    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="YourAppName" />
      </providers>
    </roleManager>