84

当我尝试运行我的网站时出现以下错误。

该网站托管在 Windows 2012 R2 上。

配置错误:此配置部分不能用于此路径。当该部分锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny") 或由具有 overrideMode="Deny" 或旧 allowOverride="false" 的位置标记显式设置的。

错误代码:0x80070021

配置来源:

 60:     <httpErrors errorMode="Detailed" />
 61:     <handlers>
 62:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />

以下是我尝试过的所有内容:

  1. 使用 IIS 中的“添加功能和角色”安装 .Net 3.5
  2. 在 applicationHost 文件中,我进行了以下代码更改:

    将部分处理程序、模块、anonymousAuthentication、basicAuthentication 等 overrideModeDefault 从“拒绝”更改为“允许”。

  3. 在 .Net 3.5 和 4.5 中完成了“HTTP 激活”。

下面是我的网络配置文件处理程序代码:

<handlers>
  <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
  <remove name="OPTIONSVerbHandler"/>
  <remove name="TRACEVerbHandler"/>
  <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
  1. 在此路径中安装了功能窗口中的所有功能:Internet 信息服务 --> 万维网服务 --> 应用程序开发功能 --> 除了 CGI 之外的所有功能都已启用。

  2. 在功能委托 ASP 之前是只读的,我已将其更改为读/写

  3. 使用命令提示符解锁处理程序

但我仍然无法摆脱错误。我的本地实例运行良好。另外,我有一个该网站正在运行的开发服务器,只有在我的生产服务器中我才收到此错误。

请帮助我找出可能导致此问题的原因。

4

9 回答 9

174

按照以下步骤解锁父级别的处理程序:

1) 在连接树(在 IIS 中)中,转到您的服务器节点,然后转到您的网站。

2) 对于网站,在右侧窗口中,您将看到管理下的配置编辑器。

3) 双击配置编辑器。

4)在打开的窗口中,您会在顶部找到一个下拉列表。从下拉列表中选择“system.webServer/handlers”。

5) 在右侧,还有另一个下拉菜单。选择“ApplicationHost.Config”

6)在最右侧的窗格中,您将在“部分”标题下找到“解锁部分”。点击那个。

7) 一旦应用程序主机上的处理程序被解锁,您的网站应该可以正常运行。

于 2016-02-11T06:37:41.873 回答
77

这是对我有用的方法,在装有 Windows 10 的新笔记本电脑上遇到了类似的问题。

  • 搜索“打开或关闭 Windows 功能”
  • 勾选“互联网信息服务”
  • 勾选“万维网服务”
  • 检查“应用程序开发功能”
  • 启用此下的所有项目

再试一次,现在应该可以了。

于 2016-09-11T14:19:44.850 回答
20

大多数 IIS 部分在默认情况下是锁定的,但您可以通过修改位于管理员模式下的ApplicationHost.config文件将相关部分组的属性overrideModeDefault从“拒绝”设置为“允许”来“解锁”它们%windir%\system32\inetsrv\config

在此处输入图像描述

于 2017-05-22T01:55:26.940 回答
10

我遇到了这个线程并通过以下步骤解决了问题,我的问题可能有所不同。希望这可以帮助某人。

打开和关闭 Windows 功能中,导航到服务器角色并选择下面提到的最少的项目。

在此处输入图像描述

干杯!

于 2018-10-23T13:32:19.100 回答
7

我的项目文件夹中有一个 applicationhost.config 。似乎 IISExpress 使用了这个文件夹,即使它在我的 c:\users 文件夹中显示了一个不同的文件

.vs\config\applicationhost.config

于 2017-03-22T16:41:21.260 回答
2

当我尝试这些步骤时,我不断收到错误:

  1. 搜索“打开或关闭 Windows 功能”
  2. 勾选“互联网信息服务”
  3. 勾选“万维网服务”
  4. 检查“应用程序开发功能”
  5. 启用此下的所有项目

然后我查看了事件查看器并看到了这个错误:Unable to install counter strings because the SYSTEM\CurrentControlSet\Services\ASP.NET_64\Performance key could not be opened or accessed. The first DWORD in the Data section contains the Win32 error code.

为了解决这个问题,我在注册表中手动创建了以下条目:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\ASP.NET_64\Performance

并遵循以下步骤:

  1. 搜索“打开或关闭 Windows 功能”
  2. 勾选“互联网信息服务”
  3. 勾选“万维网服务”
  4. 检查“应用程序开发功能”
  5. 启用此下的所有项目
于 2019-02-12T19:33:04.080 回答
1

我认为更好的方法是您必须从 web.config 中删除您的配置。在服务器上发布您的代码并直接从 IIS 服务器界面执行您想要删除的操作。

多亏了这种方法,如果你成功地做你想做的事,你只需要获取 web.config 并比较差异。之后,您只需在此帖子中发布解决方案:-P。

于 2015-12-11T09:31:12.943 回答
1

以下是对我有用的:

  1. 在 IIS 中单击根注释“笔记本电脑 ____**”。
  2. 从中间托盘中显示的选项中,单击底部的配置编辑器。
  3. 在顶部下拉选择“system.webServer/handlers”。
  4. 在部分解锁部分的右侧窗口中。
于 2020-08-16T05:19:06.003 回答
0

单击您的项目属性,转到 web 部分,从 Servers 部分,从 IIS express 更改为 Local IIS,它将为您创建一个虚拟目录

于 2017-07-06T15:45:42.660 回答