配置错误:此配置部分无法在此路径上使用

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

配置错误:此配置部分无法在此路径中使用。当节被锁定在父级时,会发生这种情况默认情况下(overrideModeDefault="Deny"),或由带有overrideMode="Deny"或遗留的位置标签允许覆盖="false"。

更多细节可以在这里找到,在设想7匹配我的十六进制错误代码。

上面链接站点上给出的解决方案是在我的错误中提到的部分applicationHost.config文件中为overrideModeDefault设置允许。在我的情况下,在system.web服务器中的安全合规下。但是如果我在本地计算机上查看applicationHost.config,站点已经正确部署,该部分设置为否认

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

1305727 次浏览

浏览到“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" />

保存文件后,页面在我的浏览器中加载得很好。

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

您也可以使用iis管理器来编辑这些设置。

注意这个学习IIS文章

使用IIS根目录中的功能授权

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

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

功能委托示例

我也遇到了同样的问题。不记得我在网上哪里找到的,但我是这样做的:

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

顺便说一句,我使用的是Windows 7。多年来的许多评论都证明这可以一直运行到Windows 10和Server 2019。

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

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers

对于在IIS 8上遇到此错误的人来说,可能还有另一个信息,在我的情况下是在Microsoft Server 2012平台上。我花了几个小时与执行appcmd后冒出的其他错误作斗争。最后,我能够通过删除Web Server Role并再次安装来修复它。

在我的例子中,我得到这个错误是因为我在错误的配置文件上操作。

我在做这个:

Configuration config = serverManager.GetWebConfiguration(websiteName);ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");serverRuntimeSection["alternateHostName"] = hostname;

而不是正确的代码:

Configuration config = serverManager.GetApplicationHostConfiguration();ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);serverRuntimeSection["alternateHostName"] = hostname;

换句话说,我试图在网站的web.config上操作,而不是全局文件C:\Windows\System32\inetsrv\config\applicationHost.config,它有一个网站部分(或可以有一个部分)。我试图更改的设置只存在于applicationHost.config文件中。

对于Windows Server 2012iis8,过程类似。

应该安装Web Server (IIS)Application Server,您还应该在Application Server下安装可选的Web Server (IIS) Support

Windows Server 2012和IIS 8对MVC的要求

Windows Server 2012iis8上,我通过启用ASP.NET4.5功能解决了这个问题:

输入图片描述

然后跟随肯的回答

对于Windows Server 2008和IIS 7,过程类似。请参考这个:http://msdn.microsoft.com/en-us/library/vstudio/bb763178(v=vs.100)

在添加角色服务中,你会看到“应用程序开发功能”

检查(启用)功能。我检查了所有。

我也有同样的问题。

  • 通过启用Application Server功能解决了它。重新启动的iis在那之后。

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

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

我对类似问题的回答

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

  1. 打开iis管理器
  2. 连接窗格中的选择服务器
  3. 在主窗格中打开配置编辑器
  4. 在区域下拉列表中,选择要解锁的区域,例如system.web服务器默认路径
  5. 单击右窗格中的解锁属性
  6. 重复您需要解锁的任何其他设置
  7. 重新启动IIS(可选)-在连接窗格中选择服务器,单击操作窗格中的重新启动

我从提升的命令提示符运行这两个命令:

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

这对我很有用同样在IIS 8中,您可以通过将服务器更改为IIS Express来解决此问题。转到调试->属性在Web中,从下拉列表中选择服务器作为IIS Express,然后重建解决方案

在Vista Home Premium上安装IIS 7后收到同样的问题。为了纠正错误,我更改了位于Windows\system 32\inetsrv中的applicationHost.config文件中的以下值。

更改位于节中的所有以下值-->

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div><div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>

要在应用程序级别(Web. Config)进行更改:

请从web.config中删除信任级别:

实际上,当我试图在托管服务器上托管我的网站时,我收到了这个错误,我无法控制他们的服务器。从我的应用程序中删除上述行web.config解决了我的问题。

我遇到了一个问题,我在其中放入覆盖=“允许”值(这里已经提到了)……但是在x64位系统上……我的32个记事本++是幻影保存它们。切换到记事本(这是x64位O/S上的64位应用程序)允许我保存设置。

见:

相关文本:

我正在运行的问题之一需要我查看并可能编辑applicationHost.config.此文件位于%SystemRoot%\System32\inetsrv\config。看起来很简单。我能够从命令行轻松找到它,但是当我去将其加载到我最喜欢的编辑器(Notepad++)时,我得到了一个文件未找到错误。原来System32文件夹被重定向到32位应用程序到SysWOW64。似乎无法使用32位应用程序查看System32文件夹。去图。幸运的是,64位版本的Windows附带64位版本的记事本。尽管我不喜欢它,但至少它可以工作。

在我的情况下,除了浏览之外,我还在尝试更新IIS中的身份验证设置时遇到此错误。我能够通过从web.config本身中删除身份验证设置来删除此错误。删除有问题的配置部分可能侵入性较小,在某些情况下比更改服务器角色和功能太多更好:

部分删除:

    <security><authentication><windowsAuthentication enabled="true" /></authentication></security>

当我收到这条漂亮的消息时,我需要更改子文件夹上的SSL设置。在我的情况下,以下操作帮助了我。

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

并将值从overrideModeDefault=“拒绝”更改为“允许”

<sectionGroup name="system.webServer">...<sectionGroup name="security"><section name="access" overrideModeDefault="Allow" /></sectionGroup>

在我们的IIS 8案例中,我们发现错误是在尝试查看站点的“身份验证”时产生的,当时:

  1. 服务器功能委派标记为“身份验证-Windows”=“只读”
  2. 该站点有一个明确引用windows身份验证的web.config;例如:

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

站点web.configIIS管理器-服务器功能委派

似乎在IIS Express和VS 2015中,applicationHost.config文件的副本位于$(Solutions tionDir). vs\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" />

以下内容为我工作:

转到项目属性。Web选项卡。设置为本地IIS并设置特定页面。

我有Windows 7和Visual Studio 2013。

你可以试试这个:

转到您收到拒绝错误的应用程序路径,右键单击

属性->安全选项卡

在这种情况下,更改权限并选中读写复选框。然后它将工作,希望没有任何错误。

启用功能的Powershell方式(Windows Server 2012+)-根据需要修剪:

Install-WindowsFeature NET-Framework-CoreInstall-WindowsFeature Web-Server -IncludeAllSubFeatureInstall-WindowsFeature NET-Framework-Features -IncludeAllSubFeatureInstall-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeatureInstall-WindowsFeature Application-Server -IncludeAllSubFeatureInstall-WindowsFeature MSMQ -IncludeAllSubFeatureInstall-WindowsFeature WAS -IncludeAllSubFeature

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

我解决了这个问题

转到cmd并执行aspnet_regiis-i

希望对某人有帮助。

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

VS2015+更新:配置文件位置为$(解决方案Dir). vs\config\applicationhost.config

查找以下行

<section name="windowsAuthentication" overrideModeDefault="Deny" /><section name="anonymousAuthentication" overrideModeDefault="Deny" /><add name="WindowsAuthenticationModule" lockItem="true" /><add name="AnonymousAuthenticationModule" lockItem="true" />

把这些线改成

<section name="windowsAuthentication" overrideModeDefault="Allow" /><section name="anonymousAuthentication" overrideModeDefault="Allow" /><add name="WindowsAuthenticationModule" lockItem="false" /><add name="AnonymousAuthenticationModule" lockItem="false" />

保存并刷新Asp.net页面。

1.打开“打开或关闭窗口功能”通过:WinKey+R=>“optional功能”=>确定

在此处输入图片描述

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

在此处输入图片描述

在Win 10上测试-但可能也适用于其他Windows版本。

在我的情况下,这是别的东西。

当我在新版本的Visual Studio中加载解决方案时,VS显然创建了一个新的特定于项目的applicationhost.config文件:

MySolutionDir\. vs\config\applicationhost.config

它开始使用新配置中的设置,而不是我已经自定义的全局IIS Express设置。(\用户\%USER%\文档\IISExpress\配置\applicationhost.config)

在我的情况下,这是需要设置的设置。当然,它也可以是其他东西:

<section name="ipSecurity" overrideModeDefault="Allow" />

这对我来说很有用,对于IIS 8 Windows Server 2012 R2

转到“打开功能”

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

然后,选择如下所示,输入图片描述

然后重置IIS(可选),但要更安全。

在此处输入图片描述

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

错误说明配置部分锁定在父级。因此,它不会直接1配置文件来解决问题,我们需要通过配置文件的层次结构来查看继承检查下面的链接以浏览IIS中的文件层次结构和继承

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

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

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

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

在注册表中添加以下键解决了我的问题:

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

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

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

我注意到一个类似的答案,但在我的情况下,我使用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

在重新安装iis和可能所有站点之前,请转到:C:\in et pub\历史

应该有文件夹的数量(例如:CFGHISTORY_0000000029)。每次修改根配置文件时,都会在其中进行输入。(默认情况下,保存最近10次修改的备份)

查找具有正确日期和时间的备份文件夹,点击它,看看是否有一个名为的文件;applicationhost.config

将其与当前applicationhost.config文件进行比较,或者用它替换您当前的版本(先备份!!!)。

我最近有一个Windows 2004更新包修改了我的localhostiis文件,它锁定了根目录的一些功能(例如处理程序),这阻止了localhost站点的工作-因此我进行了搜索。

如果您在Visual Code中打开文件,您可以看到使用覆盖模式默认=“拒绝”

这可能会让您更近一步,也是一种在此文件损坏时恢复的方法。

我遇到了类似的问题,但我使用了以下Powershell脚本,它帮助我在按钮单击中实现了上述步骤。

#Install IISImport-Module ServerManager
Add-WindowsFeature Web-Server, Web-Asp-Net45, Web-Mgmt-Console, Web-Scripting-Tools, NET-WCF-HTTP-Activation45, Web-Windows-Auth

可以根据需求添加或删除功能列表。