早上好,
我正在尝试在我的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而不是本地计算机运行的。
最后,我尝试了这些方法,但收效甚微。有人可以向我解释我怎么能通过这个错误?提前谢谢!
答案 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标记,然后网站和应用程序开始正常工作。