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

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

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

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

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


当前回答

在重新安装iis和所有站点之前,请转到:C: \inetpub\history

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

查找具有正确日期和时间的备份文件夹,单击它,查看是否有名为的文件;应用程序主机配置文件

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

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

如果在Visual Code中打开文件,则可以看到每个区域都被overrideModeDefault=“拒绝”

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

其他回答

错误表示配置节在父级被锁定。因此,它将不是直接解决问题的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的顺序仔细查看所有这些配置,您应该会找到它。

我在设置override=“允许”值时遇到了问题(这里已经提到)。。。。。。但在x64位系统上。。。。。。。我的32个记事本++是在幻象中拯救他们。切换到记事本(x64位O/S上的64位应用程序)允许我保存设置。

参见:

http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

相关文本:

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

我也有同样的问题。我从web.config文件中删除了此部分。

<modules>
      <remove name="WebDAVModule" />
</modules>

对于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" />

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

VS2015+的更新:config文件位置为$(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页面。