IIS配置错误-此配置部分不能在此路径下使用


77

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

该网站托管在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等的覆盖模式默认值从“ Deny”更改为“ Allow”。

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

以下是我的Web配置文件处理程序代码:

<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. 使用命令提示符解锁处理程序

但是我仍然无法摆脱错误。我的本地实例运行正常。另外,我有一个可以在该网站上运行的开发服务器,仅在生产服务器上出现此错误。

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


您是否尝试过从应用程序的IIS控制台界面中删除处理程序,并查看web.config中发生了什么变化?
D4rkTiger 2015年

当我在网站的功能视图中的IIS下双击处理程序映射时,出现相同的错误->此配置部分无法在此路径中使用。当节锁定在父级时,会发生这种情况。锁定默认情况下是(overrideModeDefault =“ Deny”),或者是由一个带有overlayMode =“ Deny”或旧版allowOverride =“ false”的位置标记明确设置的。
thenakulchawla 2015年

Answers:


152

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

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

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

3)双击配置编辑器。

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

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

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

7)一旦解锁了applicationHost上的处理程序,您的网站就可以正常运行。


2
像魅力一样工作。这些“功能”被锁定的原因是否存在?
Shamshiel

1
我不确定为什么会这样。对我来说,只有生产级别的服务器被锁定,其余的默认情况下被解锁。
thenakulchawla

我有四个新的盒子,并在所有四个盒子上安装了一个应用程序。只有四分之一的人有此问题。这个答案很完美。
stevieb

1
谢谢!这解决了我的问题。虽然,第5步中的下拉菜单对我来说并不存在(Win 10上的IIS 10),不是system.webServer / handlers部分为我锁定的。原来是system.webServer / httpErrors部分下的defaultPath属性。
Jargs '17

您打开了多少个窗口?打开的窗口的名称是什么?在顶部有2个下拉菜单!
AaA

71

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

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

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


我使用的是Windows 10,最近的一项更新(可能是“周年更新”)清除了我所有的IIS网站和设置,并完全禁用了我的计算机上的IIS!您的解决方案很快,就解决了我的问题。谢谢!
罗素·乔纳金

4
带有Win10的新笔记本电脑,我懒散地检查了“打开或关闭Windows功能”中“ Internet信息服务”的根节点。这成功了。
库尔梅,2016年

当我将所有数据传输到新笔记本电脑时,它无法正常工作。您的解决方案有所帮助。谢谢。
Yash Pandya

对我而言,像魅力一样的作品对我来说非常感谢,但亚瑟却不知道我做了什么。您能否解释一下您所做的更改?
3条规则

工作就像一个魅力对我来说在Windows 10
周杰伦周杰伦周杰伦


8

我遇到了这个问题,并按照以下步骤解决了问题,我的问题可能有所不同。希望这可以帮助一些人。

在“打开和关闭窗口功能”中,导航到服务器角色,然后选择以下提及最少的项目。

在此处输入图片说明

干杯!


5

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

.vs \ config \ applicationhost.config


2

当我尝试这些步骤时,我不断出错:

  1. 搜索“打开或关闭Windows功能”
  2. 检查“ Internet信息服务”
  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. 检查“ Internet信息服务”
  3. 选中“万维网服务”
  4. 检查“应用程序开发功能”
  5. 启用此下的所有项目

1

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

多亏了这种方法,如果您成功执行所需的操作,您只需要获取web.config并比较差异即可。之后,您只需要在此帖子中发布解决方案即可:-P。


我尝试从Web.Config文件中删除处理程序部分并发布。由于某种原因,我能够获取数据,但是当我执行Post / Put操作时,它会弹出错误404,并说未找到。我不确定为什么会这样。有任何想法吗?
thenakulchawla 2015年

好的,现在您的网站可以正常工作了。这是一个好点:-)。现在,我认为您必须对自己想做的事情有更多的了解?为什么必须删除此处理程序?
D4rkTiger 2015年

0

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


0

以下是对我有用的东西:

  1. 在IIS中,单击根注释“ LAPTOP ____ **”。
  2. 从中间托盘中显示的选项中,单击底部的配置编辑器。
  3. 在顶部下拉列表中,选择“ system.webServer / handlers”。
  4. 在“部分解锁”部分的右侧窗口中。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.