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

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

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

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

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


当前回答

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

然后跟随肯的回答。

其他回答

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

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

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

我在设置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位版本记事本。尽管我不喜欢它,但至少它起作用了。

在我的例子中,我遇到了这个错误,因为我使用了错误的配置文件。

我在做这个:

Configuration config = serverManager.GetWebConfiguration(websiteName);
ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");
serverRuntimeSection["alternateHostName"] = hostname;

而不是正确的代码:

Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);
serverRuntimeSection["alternateHostName"] = hostname;

换句话说,我试图在网站的web.config上操作,而不是在全局文件C:\Windows\System32\inetsrv\config\applicationHost.config上操作,该文件有一个(或可以有一个)网站节。我试图更改的设置仅存在于applicationHost.config文件中。

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

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

MySolutionDir\.vs\config\applicationhost.config

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

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

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

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

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