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

问题描述 投票:56回答:8

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

该网站托管在Windows 2012 R2上。

配置错误:此配置部分不能在此路径中使用。当该部分被锁定在父级别时会发生这种情况。锁定是默认情况下(overrideModeDefault =“Deny”),或由locationMode =“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从“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之前是Read Only,我已将其更改为Read / Write
  3. 使用命令提示符解锁处理程序

但我仍然无法摆脱错误。我的本地实例工作正常。此外,我有一个开发服务器,该网站正在工作,只有在我的生产服务器,我收到此错误。

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

asp.net .net web-config iis-8 applicationhost
8个回答
125
投票

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

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

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

3)双击配置编辑器。

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

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

6)在最右侧的窗格中,您将在“Section”标题下找到“Unlock Section”。点击它。

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


66
投票

继承人对我有用,在我的新笔记本电脑上有类似的问题,有10个窗口。

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

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


13
投票

大多数IIS部分are locked by default但您可以通过在管理员模式下修改位于overrideModeDefaultApplicationHost.config文件,将相关部分组的属性%windir%\system32\inetsrv\config从“Deny”设置为“Allow”来“解锁”它们

enter image description here


5
投票

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

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

enter image description here

干杯!


4
投票

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

.VS \ CONFIG \对ApplicationHost.config


1
投票

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

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


0
投票

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


0
投票

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

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

然后我看了一下事件查看器并看到了这个error: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. 启用此下的所有项目
© www.soinside.com 2019 - 2024. All rights reserved.