角色管理器未启用。即使改变 web.config

Role Manager not enabled. Even after changing web.config

我在 web.config 中启用了角色管理器,但仍然出现错误:

System.Configuration.Provider.ProviderException : 角色管理器功能尚未启用。

我用的是nunit,这是我的测试方法

[Test]
public void DownloadbloombergTest()
{
    if (!Roles.RoleExists("Admin"))
        Roles.CreateRole("Admin");
    if (!Roles.IsUserInRole(WebSecurity.CurrentUserName, "Admin"))
        Roles.AddUserToRole(WebSecurity.CurrentUserName, "Admin");    
    var controller = new DownloadBloombergController();
    var result = controller.DownloadBloomberg() as ViewResult;           
    Assert.IsInstanceOf<ViewResult>(result);
}

这是我的 web.config

...
<system.web>


     <membership defaultProvider="SimpleMembershipProvider">
      <providers>
        <clear />
        <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
      </providers>
    </membership>
    <roleManager enabled="true" defaultProvider="SimpleRoleProvider">
      <providers>
        <clear />
        <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
      </providers>
    </roleManager>


    <customErrors mode="Off" />
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <authentication mode="Forms">
      <forms loginUrl="~/Login/Login" timeout="2880" />
    </authentication>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
...

nunit 指向行(方法的开头)

 if (!Roles.RoleExists("Admin"))

将 Web.config 文件复制到测试 class 库并将其重命名为 app.config 解决了问题