【问题标题】:IIS Config Error - This configuration section cannot be used at this pathIIS 配置错误 - 此配置部分不能用于此路径
【发布时间】:2016-03-15 23:24:45
【问题描述】:

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

该网站托管在 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. 使用命令提示符解锁处理程序

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

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

【问题讨论】:

  • 您是否尝试过从应用程序的 IIS 控制台界面中删除处理程序并查看 web.config 中发生了什么变化?
  • 当我在我的网站的功能视图中双击 IIS 下的处理程序映射时,我得到相同的错误 --> 此配置部分不能在此路径中使用。当该部分锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny"),或者由具有 overrideMode="Deny" 或旧版 allowOverride="false" 的位置标记显式设置。

标签: asp.net .net web-config iis-8 applicationhost


【解决方案1】:

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

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

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

3) 双击配置编辑器。

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

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

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

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

【讨论】:

  • 工作就像一个魅力。这些“功能”被锁定是否有原因?
  • 我不知道为什么会这样。对我来说,只有生产级别的服务器被锁定,其余服务器默认解锁。
  • 我有四个盒子,都是全新的,并且在四个盒子上都安装了一个应用程序。四个中只有一个有这个问题。这个答案非常有效。
  • 谢谢!这解决了我的问题。虽然,第 5 步中的下拉菜单对我来说不存在(Win 10 上的 IIS 10),而且对我来说锁定的不是 system.webServer/handlers 部分。原来是 system.webServer/httpErrors 部分下的 defaultPath 属性。
  • 你打开了多少个窗口?打开的窗口的名称是什么?顶部有 2 个下拉菜单!
【解决方案2】:

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

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

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

【讨论】:

  • 我在 Windows 10 上,最近的更新之一(可能是周年更新)清除了我所有的 IIS 网站和设置,并在我的机器上完全禁用了 IIS!您的解决方案很快,它解决了我的问题。谢谢!
  • 新的Win10笔记本电脑,我马虎地检查了“打开或关闭Windows功能”中的“Internet信息服务”的根节点。这成功了。
  • 当我将所有数据转移到新笔记本电脑时,它不起作用。您的解决方案有所帮助。谢谢。
  • 对我来说就像魅力一样感谢 Yasser,但不知道我做了什么。你能解释一下你做了什么改变吗?
  • 适用于我的 Windows 10 错误:此配置部分不能用于此路径。当该部分锁定在父级别时会发生这种情况。锁定是默认情况下 (overrideModeDefault="Deny"),或者由具有 overrideMode="Deny" 或旧版 allowOverride="false" 的位置标记显式设置。
【解决方案3】:

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

【讨论】:

  • 唯一对我有用的东西。我通过 IIS 中的配置编辑器查看了任何被标记为锁定并带有锁定图标但找不到的部分。
  • 这也适用于 windows server 2012 r2
【解决方案4】:

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

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

干杯!

【讨论】:

    【解决方案5】:

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

    .vs\config\applicationhost.config

    【讨论】:

      【解决方案6】:

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

      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. 启用此下的所有项目

      【讨论】:

        【解决方案7】:

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

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

        【讨论】:

        • 我尝试从 Web.Config 文件中删除处理程序部分并发布。由于某种原因,我能够获取数据,但是当我进行 Post/Put 操作时,它会弹出错误 404,并说未找到。我不确定为什么会这样。有什么想法吗?
        • 好的,现在您的网站可以正常工作了。这是一个很好的观点:-)。现在我想你必须有更多关于你想要做什么的细节?为什么你必须删除这个处理程序?
        【解决方案8】:

        以下是对我有用的:

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

        【讨论】:

          【解决方案9】:

          点击你的项目属性,进入 web 部分,从 Servers 部分,从 IIS express 更改为 Local IIS,它会为你创建一个虚拟目录

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2019-09-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多