<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
IIS7崩溃并抱怨自闭节:
模块AnonymousAuthenticationModule
通知AuthenticateRequest
处理程序StaticFile
错误代码0x80070021
配置错误不能在此路径上使用此配置部分。当节锁定在父级时,会发生这种情况。默认情况下,锁定是(overrideModeDefault =“ Deny”),或者是由具有overrideMode =“ 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
)。奇怪的事情:我已经做到了,但仍然抱怨。是我正在使用的所有网站的根目录):
<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管理控制台,我可以修复该问题,方法是移至非常根目录(我的机器),然后单击“编辑配置”并在那里解锁该部分。仍然我想知道是否有更好的方法,因为我找不到它实际修改过的文件。
#1 楼
制定了解决这些问题的以下步骤:打开IIS管理器
单击左侧树中的服务器名称
右窗格“管理”部分,双击“配置编辑器”
,在顶部选择
system.webServer/security/authentication/anonymousAuthentication
部分右窗格,单击“解锁部分”
在顶部,选择
system.webServer/security/authentication/windowsAuthentication
部分/>在右窗格中,单击“解锁部分”
评论
是否具有等效的PowerShell?我希望能够编写此脚本。
– PeteStensønes
18年1月4日在10:52
如果找到一个,请随时发布:)
–煽风点火
18年1月4日在11:15
我会的,我希望别人已经知道如何做。
– PeteStensønes
18年1月4日在11:26
@PeteStensønes它有! >%windir%\ system32 \ inetsrv \ appcmd.exe解锁配置-section:system.webServer / security / authentication / windowsAuthentication
–joacar
19年5月7日在8:59
#2 楼
这解决了我在Windows Server 2012,IIS 8.5上的错误。应该也适用于其他版本。转到“服务器管理器”,单击“添加角色和功能”
在“角色”部分中选择:Web服务器
在“安全性”子节中选择所有内容(我不使用摘要,IP限制和URL授权,因为我们不使用它们)
在“应用程序开发”下,选择
.NET Extensibility 4.5
和ASP>NET 4.5
,两个ISAPI条目部分选择:
NET 3.5
,.NET 4.5
,ASP.NET 4.5
在Web服务器部分中选择:
Web Server (all)
,Management Tools (IIS Management Console and Management Service)
,Windows
#3 楼
配置锁定可以在以下位置发生:Applicationhost.config(配置字符串:MACHINE / WEBROOT / APPHOST)
站点Web.config文件(MACHINE / WEBROOT / APPHOST /网站)名称)
通过任何应用程序web.config文件(机器/网络地址/ APPHOST /站点名称/应用程序名称)能够将这些设置配置给层次结构中比您低的任何人。
使用GUI的功能委托特性是没有错的,并且与AppCMD所做的事情非常相似, Covers-在
<asp>
标记中给定部分的OverrideMode设置为您关注的配置级别。APPCMD可用于解锁文件,但请注意其执行位置-
在
<location>
命令的末尾添加-commit:apphost
的目标是Applicationhost.config,这是IIS操作的关键文件(替换元数据库)从早期版本;存储所有集中式设置,但允许在web.config文件中进行覆盖(如果允许的话)。如果没有-commit:apphost,APPCMD会将目标定位为web.config文件的最接近逻辑点-无论是在网站或应用级别,并使用上面的设置字符串表示已更改设置。 (此外:您仍然只能定位子网站中的设置,但要提交给apphost-它使用位置标签来完成此操作)。
因此,如果它说(内存释义)“对MACHINE / WEBROOT / APPHOST”,则表示IIS层次结构的顶层。 Dodgy网站后面的物理路径,并在该位置写入了web.config文件(或对其进行了更新)。
#4 楼
如果您使用的是IISExpress和Visual Studio 2015,则将applicationHost.config
存储在$(solutionDir).vs\config\applicationhost.config
中(感谢Nime Cloud的回答)。在适当的地方只需更改
overrideModeDefault="Allow"
。 “ lang-xml prettyprint-override”> <sectionGroup name="security">
<section name="access" overrideModeDefault="Deny" />
<section name="applicationDependencies" overrideModeDefault="Deny" />
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
etc...
#5 楼
在您的应用程序池中尝试,禁用32位应用程序支持IIS管理器->应用程序池->选择[您的AppPool]->高级设置->启用32位应用程序-将其更改为'False'
#6 楼
看看IIS-无法在此路径上使用此配置部分(配置锁定吗?)在Windows 10上,我接受的答案对我来说是完美的,它指示执行以下操作:
在搜索框中单击“开始按钮”
,在功能窗口中输入“打开或关闭Windows功能”,然后单击:“ Internet信息服务” “
单击:”万维网服务“
单击:”应用程序开发功能“
检查(启用)功能。除了CGI,我检查了所有内容。
评论
从内存来看,通常在500.19中有一个部分告诉您哪个文件位于哪个位置,位于底部(我认为)这已经在SO
上得到了很好的回答