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

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

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

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

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


当前回答

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

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

其他回答

就我而言,这是另一回事。

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

MySolutionDir\.vs\config\applicationhost.config

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

在我的情况下,这是需要设置的设置。当然,这对你来说可能是另外一件事:

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

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

要在应用程序级别(Web.Config)进行更改,请执行以下操作:

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

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

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

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

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

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

删除的部分:

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