你应该只在你的<location>
元素:
<location path="Recovery">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
(如果您确实需要删除它们,您还可以包含 handlers 元素)。
非应用程序级别的 web.config 中不允许使用 Authentication 和 RoleManager 元素,因此您不能在<location>
元素。
编辑回应评论
抱歉,澄清一下:您有too much在您的位置元素中 -<authentication>
and <roleManager>
元素那里不允许(除非 /Recovery 是 IIS 中的应用程序)并且肯定会导致您在问题中报告的第二个错误,需要删除这些错误才能使页面正确显示。
您是否到处都看到“找不到程序集”错误,或者只是在“恢复”文件夹的页面上看到“找不到程序集”错误?该文件夹是否在 IIS 中标记为“应用程序”?如果是这样,您需要将站点的二进制文件复制到 /Recovery 下的 /bin 文件夹中,或者删除 IIS 中该文件夹上的应用程序设置。
我刚刚意识到我在前两节中所说的“授权元素”实际上是指“身份验证元素”——如果混淆了,抱歉。
编辑回应第二条评论
基本上,在 IIS 中,您可以拥有一个或多个网站 - 这些是网站的根,并被定义为应用程序起始点。
IIS 还允许您将网站的子文件夹配置为应用程序,这允许您执行以下操作:
- 更改仅允许在应用程序级别设置的配置设置
- 在不同的内存空间中运行部分站点
- 使用不同的用户帐户运行网站的一部分
但是,如果您确实将文件夹设为应用程序,则需要确保它所需的所有代码都是可访问的,并且当您启动新应用程序时,根 /bin (或 /app_code)文件夹中的代码不再是可访问的。可以通过该文件夹访问。
通常,在 IIS 管理器中,您将单击该文件夹并删除该应用程序,以便它从根继承。