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

Ale*_*lex 1694 iis iis-7 iis-8.5 iis-10

我在将站点部署到服务器时遇到错误.当尝试加载主页,或在IIS中的新站点上访问身份验证时,我收到错误:

配置错误:此配置部分不能在此路径中使用.当该部分被锁定在父级别时会发生这种情况.锁定是默认情况下(overrideModeDefault ="Deny"),或由locationMode ="Deny"或遗留allowOverride ="false"的位置标记显式设置.

可以在此处找到更多详细信息,在场景7中匹配我的十六进制错误代码.

上面链接站点上给出的解决方案是在applicationHost.config文件中的错误中提到的部分中为allowModeDefault 设置Allow.就我而言,在system.webServer中的Security下.但是,如果我查看本地计算机上已正确部署该站点的applicationHost.config,该部分将设置为Deny.

如果这个解决方案是正确的,我的本地实例如何使用相同的web.config运行得很好?根据我的applicationHost.config,该部分应该被锁定,但事实并非如此.我宁愿不更改applicationHost.config文件,因为该服务器上还有许多其他站点正在运行.还有其他解决方案吗?

chu*_*224 3197

我有同样的问题.不记得我在网上找到它的地方,但这就是我所做的:

  • 点击"开始"按钮
  • 在搜索框中,输入"打开或关闭Windows功能"
  • 在功能窗口中,单击:"Internet信息服务"
  • 点击:"万维网服务"
  • 单击:"应用程序开发功能"
  • 检查(启用)功能.我检查了除CGI以外的所有内容

顺便说一下,我正在使用Windows 7.

  • 构建了一个全新的Windows Server 2012,当然,忘了在Web Server下添加Application Development.我检查了除CGI,ASP和服务器端包含之外的所有内容,因为我这里没有经典的ASP. (84认同)
  • 确认IIS8.5 for Windows 8.1. (74认同)
  • 确认为Windows 10(IIS 10.0 Build 10240) (70认同)
  • 我检查了"应用程序开发功能",但稍后意识到该文件夹​​中没有任何功能实际上已被选中启用.我手动选择每个功能(CGI除外)以删除错误. (49认同)
  • 在Windows 8上也确认了IIS8. (30认同)
  • 在呈现任何其他神秘消息之前,它是否会杀死Microsoft首先对ASP.NET进行简单的检查并提醒用户! (9认同)
  • 在IIS 8.5 Windows 8.1上,我不必启用所有,只需ASP.NET 4.5. (8认同)
  • 已确认适用于Windows 10,VS 2015 Professional,IIS 10,Azure Emulator Full (7认同)
  • 确认为Windows 10(目前预先发布10041). (5认同)
  • 惊人的!我的缺少 .Net 4.8。启用它并开始工作。感谢一百万人。 (5认同)
  • 在Windows 10,VS 2015社区为我工作 (3认同)
  • 确认适用于Windows 10,IIS 10,VS 2013-2015 Professional. (3认同)
  • 确认Windows Server 2016 - IIS 10 (3认同)
  • 也适用于Windows 2012 :) (2认同)
  • 我发现在亚马逊的EC2服务上创建Windows Server 2012实例时必须检查这一点.默认情况下不安装IIS,并且要求启用它.谢谢! (2认同)
  • 对于ASP.NET Web API项目,我需要检查的是ASP.NET 4.6(以及提示的依赖项). (2认同)
  • 只是为了让将来的用户知道,它也可以在WIndows Server 2016上运行。感谢您的建议。 (2认同)
  • 对于 Windows Server 2019,您必须通过服务器管理器的“添加角色和功能”激活这些功能。 (2认同)
  • 当您在 Windows Server 2016 或更高版本中托管 mvc 3 或 mvc 4 应用程序时,会出现此错误...要解决此错误,您需要从添加/删除功能安装 powershell 版本 2.0 和 asp.net 3.5、asp.net 4.5。 (2认同)

Ove*_*lew 359

您还可以使用IIS管理器编辑这些设置.

关心这个学习IIS的文章:

使用IIS根目录中的功能委派:

IIS管理器中的功能委派图标

然后,您可以控制每个机器级读/写权限,否则将为您提供overrideMode ="Deny"错误.

特征委派的示例使用

  • 为了继续这一点,对我有用的是(注意这个解决方案在我的DEV盒子而不是生产系统): - >按委派排序 - >查找所有只读类型 - >将它们设置为读/写 (16认同)
  • 这里发布了两个看似不同的解决方案,这两个解决方案都是必需的.首先,安装"Application Server"和"Web Server"支持功能.第二个是,检查委派设置并将有问题的设置从只读更改为读/写.重要说明:除非安装了正确的支持功能,否则代理功能中可能无法使用违规配置.在我的情况下,"身份验证 - 匿名"是问题,并且在我安装Application Server功能之前,此委派功能未显示. (5认同)
  • 对我来说,问题出在 Windows 10 中 IIS 10 的身份验证部分。此链接对我有帮助。https://knowledgebase.progress.com/articles/Article/Windows-Authentication-This-configuration-section-cannot-be-used-at-this-path (2认同)

ken*_*ken 177

对于Windows Server 2012IIS 8,过程类似.

Web Server (IIS)Application Server应安装,你也应该有可选的Web Server (IIS) SupportApplication Server.

Windows Server 2012和IIS 8对MVC的要求

  • 为了澄清,"Web服务器(IIS)支持"功能复选框不在上面的图片中的"应用服务器"节点下.它将在您执行几个"下一个"并在左侧导航栏上传递服务器角色和功能后显示并进入"角色服务"(不会出现在上面的图片中,但会在几个"下一个"之后显示给您).这让我抓狂:P (30认同)
  • 对我来说,只有在我第一次添加Application Server规则然后重新启动添加角色和功能向导后才会出现这些选项 (2认同)

Nim*_*oud 140

浏览到"C:\ Windows\System32\inetsrv\config"(这里需要管理员权限)打开applicationHost.config

注意:在IISExpress和Visual Studio 2015中,applicationHost.config存储在$(solutionDir).vs\config\applicationhost.config

找到错误消息页面的"配置源"部分中显示的部分.对我来说,这通常是"模块"或"处理程序"

overrideModeDefault属性更改为Allow

所以整条线现在看起来像:

<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
Run Code Online (Sandbox Code Playgroud)

保存文件后,页面在我的浏览器中正常加载.

警告: 在64位Windows上编辑applicationHost.config

  • 对于 64 位 Windows,您需要通过 notepad.exe 并打开 %SystemRoot%\System32\inetsrv\config 以获得该文件的正确副本 (5认同)
  • 64位的链接是404,糟糕的是你没有在你的答案中直接包含有用的信息. (2认同)

Gre*_*mar 66

你需要解锁处理程序.这可以使用以下cmd命令完成:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers
Run Code Online (Sandbox Code Playgroud)

也许在IIS 8上收到此错误的人的另一个信息,在我的情况下是在Microsoft Server 2012平台上.我花了几个小时与其他在执行appcmd后冒出的错误作斗争.最后,我能够通过删除Web服务器角色并再次安装来修复它.

  • 答对了.不得不以管理员身份运行. (3认同)
  • 我必须为-section:system.webServer/modules执行此操作. (3认同)

Avi*_*ger 38

对于Win 10(也可能适用于其他Windows版本.)

1.通过以下方式打开" 打开或关闭Windows功能 ":WinKey + R =>"optionalfeatures"=>确定

在此输入图像描述

  1. 在" 应用程序开发功能"下启用这些功能

在此输入图像描述

  • 完美的。我只需要检查 ASP.NET 4.7 框,它就会自动选择它需要的所有其他要求。甚至无需重新启动网站就可以像魅力一样工作。 (4认同)

Chr*_*ris 35

根据我对这个类似问题的回答 ;

尝试在服务器级解锁相关的IIS配置设置,如下所示:

  1. 打开IIS管理器
  2. 在"连接"窗格中选择服务器
  3. 在主窗格中打开配置编辑器
  4. 在Sections下拉列表中,选择要解锁的部分,例如system.webServer> defaultPath
  5. 单击右窗格中的" 解锁属性 "
  6. 重复您需要解锁的任何其他设置
  7. 重新启动IIS(可选) - 在"Conncetions"窗格中选择服务器,在"Actions"窗格中单击"Restart"

  • 这个解决方案对我有用,但真正的原因是不同的 - 我必须安装 ASP.NET 4.5 (Add-WindowsFeature Web-Asp-Net45)。 (2认同)

小智 31

我需要从命令提示符运行这两个命令:

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config -section:windowsAuthentication
Run Code Online (Sandbox Code Playgroud)

  • @Rook这是一个非常好的答案,因为它不会盲目地促进在服务器上启用应用程序开发功能; 它说明了获得此错误的特定方案的受控解决方案.它可能措辞得更好.好工作提升了当时新家伙的信心 - 在你和NAZIK首次尝试加入社区后,他从未回来过. (16认同)
  • 对我有用,但为什么呢? (3认同)

Kim*_*imi 26

在带有IIS 8的Windows Server 2012上,我通过启用ASP.NET 4.5功能解决了这个问题:

在此输入图像描述

然后按照肯的​​回答.

  • 在PowerShell中:Add-WindowsFeature Web-Asp-Net45 (2认同)

Dr *_* TJ 23

最好的选择是Application SettingsCustom Site Delegation
打开IIS和从根选择更改Feature Delegation,然后选择Application Settings并从右侧边栏选择Read/Write 步骤1 第2步

  • 或者了解在服务器上安装软件时"黑色方块"的含义. (3认同)

Usm*_*nas 21

对于IIS 8 Windows Server 2012 R2,这对我来说是个窍门

转到"打开功能"

然后转到所有默认设置,Next,Next,Next等.

然后,选择如下所示, 在此输入图像描述

然后重置IIS(可选),但做得更安全一面.

在此输入图像描述

这是一个额外的解决方案,因为它是一个通用问题,每个人都有不同的问题,因此不同的解 干杯!


小智 16

要解决此问题,请打开IIS Express applicationhost.config.此文件存储在C:\ Users [您的用户名]\Documents\IISExpress\config\applicationhost.config中

VS2015 +的更新:配置文件位置是$(solutionDir).vs\config\applicationhost.config

寻找以下几行

<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />
Run Code Online (Sandbox Code Playgroud)

将这些行更改为

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
Run Code Online (Sandbox Code Playgroud)

保存并刷新Asp.net页面.


Iro*_*Rod 14

在我们的IIS 8案例中,我们发现在尝试查看网站的身份验证时出现错误,时间:

  1. 服务器功能委派标记为"身份验证 - Windows"="只读"
  2. 该站点有一个显式引用Windows身份验证的web.config; 例如,

标记站点功能委派"身份验证 - Windows"="读/写",错误消失了.看来,使用标记为"只读"的功能,web.config根本不允许引用它甚至禁用它,因为这显然构成了写入.

site web.config IIS管理器 - 服务器功能委派


PBM*_*eIt 13

似乎在IIS Express和VS 2015中,$(solutionDir).vs\config\applicationhost.config中有applicationHost.config文件的副本,因此您需要在那里进行更改.看到这个链接:http://digitaldrummerj.me/iis-express-windows-authentication/

确保以下方式更改这些行:

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
Run Code Online (Sandbox Code Playgroud)


小智 12

在我的情况下,在.NET Framework功能下,服务器上没有启用"HTTP激活".因此,对于Windows Server 2012,适用于我的解决方案是:

服务器管理器 - >添加角色和功能 - >功能 - >确保在要使用的.NET Framework版本下选中"HTTP激活"


Chr*_*s S 9

Powershell启用这些功能的方法(Windows Server 2012 +) - 根据需要进行修剪:

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature
Run Code Online (Sandbox Code Playgroud)


小智 8

我注意到一个类似的答案,但就我而言,我使用 IIS 配置编辑器来查找我想要“解锁”的部分。

在此处输入图片说明

在此处输入图片说明

然后我复制了路径并在我的自动化中使用它在更改我想要编辑的部分之前将其解锁。

. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/windowsAuthentication
. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/anonymousAuthentication
Run Code Online (Sandbox Code Playgroud)


Avi*_*has 7

该错误表示配置部分已锁定在父级别。所以它不会直接是解决问题的1个配置文件,我们需要通过配置文件的层次结构来查看继承检查下面的链接以通过IIS中的文件层次结构和继承

https://msdn.microsoft.com/en-us/library/ms178685.aspx

因此,您需要按以下顺序检查应用程序配置设置

  1. C:windows\system32\inetsrv\config 中的 ApplicationHost.config。将 overrideModeDefault 属性更改为 Allow。
  2. 应用程序目录中的 ApplicationName.config 或 web.config
  3. 根目录下的web.config。
  4. 特定网站中的 Web.config (我的问题是在这个地方发现的)。
  5. 根网站的web.config(服务器的配置)
  6. 机器的machine.config(Root的web.config和machine.config可以在-systemroot\MicrosoftNET\Framework\versionNumber\CONFIG\Machine.config找到)

按照 1 到 6 的顺序仔细浏览所有这些配置,您应该会找到它。


Ste*_*hev 6

当我收到这条好消息时,我需要更改子文件夹上的SSL设置.在我的情况下,以下行动帮助了我.

打开C:\ Windows\System32\inetsrv\config\applicationHost.config

并将值从overrideModeDefault ="Deny"更改为"Allow"

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>
Run Code Online (Sandbox Code Playgroud)