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

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

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

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

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


当前回答

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

其他回答

我从提升的命令提示符运行了以下两个命令:

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

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

对于IIS 8 Windows server 2012 R2,这对我来说很有帮助

转到“打开功能”

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

然后,选择如下所示,

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

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

我注意到一个类似的答案,但在我的案例中,我使用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,从根目录中选择“功能委派”,然后选择“应用程序设置”,然后从右侧边栏中选择“读/写”

你能试试这个吗

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

财产->安全选项卡

在这一步中,更改权限并选中“读写”复选框。然后它将工作,希望没有任何错误。