配置错误:此配置部分不能在此路径中使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置错误:此配置部分不能在此路径中使用相关的知识,希望对你有一定的参考价值。
我在将站点部署到服务器时遇到错误。当尝试加载主页,或在IIS中的新站点上访问身份验证时,我收到错误:
配置错误:此配置部分不能在此路径中使用。当该部分被锁定在父级别时会发生这种情况。锁定是默认情况下(overrideModeDefault =“Deny”),或由locationMode =“Deny”或遗留allowOverride =“false”的位置标记显式设置。
更多细节可以在这里找到,在Scenario 7匹配我的十六进制错误代码。
上面链接站点上给出的解决方案是在applicationHost.config文件中的错误中提到的部分中为allowModeDefault设置Allow。就我而言,在system.webServer中的Security下。但是,如果我查看本地计算机上已正确部署该站点的applicationHost.config,该部分将设置为Deny。
如果这个解决方案是正确的,我的本地实例如何使用相同的web.config运行得很好?根据我的applicationHost.config,该部分应该被锁定,但事实并非如此。我宁愿不更改applicationHost.config文件,因为该服务器上还有许多其他站点在运行。还有其他解决方案吗?
我有同样的问题。不记得我在网上找到它的地方,但这就是我所做的:
- 点击“开始”按钮
- 在搜索框中,输入“打开或关闭Windows功能”
- 在功能窗口中,单击:“Internet信息服务”
- 点击:“万维网服务”
- 单击:“应用程序开发功能”
- 检查(启用)功能。我检查了除CGI以外的所有内容
顺便说一下,我正在使用Windows 7。
最好的选择是从Application Settings
改变Custom Site Delegation
打开IIS
并从根选择Feature Delegation
然后选择Application Settings
并从右侧边栏选择Read/Write
对于IIS 8 Windows Server 2012 R2,这对我来说是个窍门
转到“打开功能”
然后转到所有默认设置,Next,Next,Next等。
然后重置IIS(可选),但做得更安全一面。
这是一个额外的解决方案,因为它是一个通用问题,每个人都有不同的问题,因此不同的解干杯!
要解决此问题,请打开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" />
将这些行更改为
<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />
保存并刷新Asp.net页面。
似乎在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" />
在我的情况下,在.NET Framework功能下,服务器上没有启用“HTTP激活”。因此,对于Windows Server 2012,适用于我的解决方案是:
服务器管理器 - >添加角色和功能 - >功能 - >确保在要使用的.NET Framework版本下选中“HTTP激活”
在我们的IIS 8案例中,我们发现在尝试查看网站的身份验证时出现错误,时间:
- 服务器功能委派标记为“身份验证 - Windows”=“只读”
- 该站点有一个显式引用Windows身份验证的web.config;例如。,
标记站点功能委派“身份验证 - Windows”=“读/写”,错误消失了。看来,使用标记为“只读”的功能,web.config根本不允许引用它甚至禁用它,因为这显然构成了写入。
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
当我收到这条好消息时,我需要更改子文件夹上的SSL设置。在我的情况下,以下行动帮助了我。
打开C: Windows System32 inetsrv config applicationHost.config
并将值从overrideModeDefault =“Deny”更改为“Allow”
<sectionGroup name="system.webServer">
...
<sectionGroup name="security">
<section name="access" overrideModeDefault="Allow" />
</sectionGroup>
在我的情况下,我收到此错误,因为我在错误的配置文件上操作。
我这样做:
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文件中。
在我的情况下,它是另一回事。
当我在新版本的Visual Studio中加载解决方案时,VS显然创建了一个新的项目特定的applicationhost.config文件:
MySolutionDir .VS 设置对ApplicationHost.config
它开始使用新配置中的设置,而不是我已经自定义的全局IIS Express设置。 (用户%USER%文件 IISExpress 配置对ApplicationHost.config)
在我的情况下,这是需要设置的设置。当然,它可能是你的另一个东西:
<section name="ipSecurity" overrideModeDefault="Allow" />
您还可以使用IIS管理器编辑这些设置。
照顾这个Learn IIS article:
使用IIS根目录中的功能委派:
然后,您可以控制每个机器级读/写权限,否则将为您提供overrideMode =“Deny”错误。
你能试试这个:
转到应用程序路径,您将收到拒绝错误,右键单击
属性 - >安全选项卡
在那里,更改权限并选中读取和写入复选框。然后它可以毫无错误地工作。
该错误表示配置部分已锁定在父级别。所以它不会直接1配置文件将解决问题,我们需要通过配置文件的层次结构来查看继承检查下面的链接来完成IIS中的文件层次结构和继承
https://msdn.microsoft.com/en-us/library/ms178685.aspx
因此,您需要按以下顺序检查应用配置设置
- C:windows system32 inetsrv config中的ApplicationHost.config。将overrideModeDefault属性更改为Allow。
- ApplicationName.config或web.config在applications目录中
- 根目录中的Web.config。
- 特定网站中的Web.config(我的问题是在这个地方找到的)。
- 根网站的Web.config(服务器配置)
- 机器的machine.config(root的web.config和machine.config可以在--systemroot MicrosoftNET Framework versionNumber CONFIG Machine.config中找到)
仔细检查所有这些配置,大约1到6,你应该找到它。
对于Windows Server 2008和IIS 7,过程类似。请参考:http://msdn.microsoft.com/en-us/library/vstudio/bb763178(v=vs.100).aspx
在添加
以上是关于配置错误:此配置部分不能在此路径中使用的主要内容,如果未能解决你的问题,请参考以下文章
配置错误 不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况
IIS 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。 HTTP 错误 500.19
不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况