在运行.NET 4的IIS 7上找不到默认角色提供程序

时间:2013-05-31 12:57:35

标签: c# iis web-applications membership-provider roleprovider

早上好,

我正在尝试在我的Web应用程序中实现我的自定义成员资格和角色提供程序,这是我在IIS 7实例中的默认网站下实现的。我的Web应用程序在.NET 4应用程序池下运行。

但是,在设置相应的web.config后,我收到以下错误:

Parser Error Message: Default Role Provider could not be found.

我在相应的Web应用程序的web.config的system.web部分中包含了以下代码块:

<membership defaultProvider="CustomMembershipProvider" userIsOnlineTimeWindow="20">
 <providers>
  <clear/>
  <add name="CustomMembershipProvider" type="CustomProviders.CustomMembershipProvider,   
     CustomProviders, Version=3.0.0.0, Culture=neutral, 
     PublicKeyToken=3563615169617648" applicationName="/"/>
 </providers>
</membership>

<roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
   <clear/>
   <add name="CustomRoleProvider" type="CustomProviders.CustomRoleProvider, 
     CustomProviders, Version=3.0.0.0, Culture=neutral, 
     PublicKeyToken=3563615169617648" applicationName="/"/>
  </providers>
</roleManager>

现在我已经看到了如何解决我之前提到的错误的各种解释。他们中的大多数人似乎都建议我在我的提供者块中添加标签。 有些人似乎建议I remove the role manager from the machine.config。有些人似乎仍然建议not removing or adding anything.这最后一种方法似乎并不能说明我的Web应用程序是从IIS而不是本地计算机运行的。

最后,我尝试了这些方法,但收效甚微。有人可以向我解释我怎么能通过这个错误?提前谢谢!

3 个答案:

答案 0 :(得分:13)

使用默认的MVC 4 Web应用程序时出现此错误。 我不得不将以下内容添加到web.config并且错误消失了。 在<system.webServer>下 添加

<modules>
 <remove name="RoleManager"/>
</modules>

答案 1 :(得分:0)

两件事:

enabled="false"应该是enabled="true"

我不相信applicationName="/"是有帮助的,但也可能没有伤害。

答案 2 :(得分:0)

在IIS 8中将应用程序添加到现有网站时,我收到此错误消息(在IIS中右键单击该网站,选择“添加应用程序”)。应用程序的web.config只有默认标记,它删除了网站web.config定义的默认提供程序。

我从应用程序的web.config中完全删除了RoleManager标记,然后网站和应用程序开始正常工作。