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

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

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

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

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


当前回答

以下内容对我有用:

转到项目财产。Web选项卡。设置为本地IIS并设置特定页面。

我有Windows 7和Visual Studio 2013。

其他回答

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

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

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

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

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

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

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

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

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

在Vista Home Premium上安装IIS 7后收到了同样的问题。为了更正错误,我更改了Windows\system32\inetsrv中applicationHost.config文件中的以下值。

更改-->部分中的以下所有值

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
<div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>

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

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

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