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

配置错误:无法在此路径上使用此配置节。当节在父级锁定时,会发生这种情况。锁定是默认情况下(overrideModeDefault=“Deny”),或由具有overrideMode=“拒绝”或旧版的位置标记allowOverride=“false”。

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

上面链接站点上给出的解决方案是在applicationHost.config文件中的错误部分中设置Allow for overrideModeDefault。在我的例子中,在system.webServer中的“安全”下。但如果我查看本地计算机上的applicationHost.config(该站点已正确部署),则该部分设置为“拒绝”。

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


当前回答

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

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

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

其他回答

最佳选项是从自定义站点委派更改应用程序设置打开IIS,从根目录中选择“功能委派”,然后选择“应用程序设置”,然后从右侧边栏中选择“读/写”

我解决了这个问题

转到cmd并执行aspnet_regiis-i

希望对某人有所帮助。

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

然后跟随肯的回答。

错误表示配置节在父级被锁定。因此,它将不是直接解决问题的1个配置文件,我们需要遍历配置文件的层次结构以查看继承检查下面的链接以查看IIS中的文件层次结构和继承

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

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

C:\windows\system32\inetsrv\config中的ApplicationHost.config。将overrideModeDefault属性更改为Allow。应用程序目录中的ApplicationName.config或web.config根目录中的Web.config。特定网站中的Web.config(在此处找到了我的问题)。根Web的Web.config(服务器的配置)计算机的machine.config(根的web.config和machine.config位于-systemroot\MicrosoftNET\Framework\versionNumber\config\machine.config)

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

在我的案例中,服务器上未启用.NET Framework功能下的“HTTP激活”。因此,对于Windows Server 2012,对我有效的解决方案是:

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