我的web.config中有以下部分:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
IIS7崩溃并抱怨自闭节:
模块AnonymousAuthenticationModule
通知AuthenticateRequest
处理程序StaticFile
错误代码0x80070021
配置错误不能在此路径上使用此配置部分。当节锁定在父级时,会发生这种情况。锁定默认情况下是(overrideModeDefault =“ Deny”),或者是由一个带有overlayMode =“ Deny”或旧版allowOverride =“ false”的位置标记显式设置的。
Config Source
69: <authentication>
70: <anonymousAuthentication enabled="true" />
因此,解决此问题的常用方法是进入%windir%\system32\inetsrv\config\applicationHost.config
并解锁该部分:
<sectionGroup name="system.webServer">
<sectionGroup name="security">
<section name="access" overrideModeDefault="Deny" />
<section name="applicationDependencies" overrideModeDefault="Deny" />
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="basicAuthentication" overrideModeDefault="Allow" />
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="digestAuthentication" overrideModeDefault="Allow" />
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
(或者appcmd unlock config
)。
奇怪的是:我已经做到了,但仍然抱怨。
我在寻找位置(MVC是我的网站的名称,它是我正在使用的所有网站的根目录):
<location path="MVC" overrideMode="Allow">
<system.webServer overrideMode="Allow">
<security overrideMode="Allow">
<authentication overrideMode="Allow">
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
仍然炸毁。我对为什么会这样感到困惑。我无法将其从web.config中删除,我想找到根本问题。
有没有办法从IIS获取特定信息,哪条规则最终会拒绝我?
编辑:我可以通过使用IIS7管理控制台来解决此问题,方法是移至最根目录(我的机器),然后单击“编辑配置”并在那里解锁该部分。仍然我想知道是否有更好的方法,因为我找不到它实际修改过的文件。