IIS 8.5不接受应用程序级别的身份validation设置

我试图将身份validation设置直接设置到应用程序级别,IIS似乎并不接受它。

我在2012 R2上运行IIS 8.5。

以下是我在服务器级别禁用所有身份validation方法时发生的情况(请注意我在左侧栏中的select):

在服务器级别禁用 - 配置

结果到这,这正是我所期望的:

在服务器级别禁用 - 结果

现在,如果我在服务器级别重新启用匿名身份validation,并在应用程序级别执行相同的操作:

在应用程序级别 - 配置禁用

我得到以下内容,这是我的静态HTML页面的内容:

在应用程序级别禁用 - 结果

所以,如果我禁用所有的身份validation方法,它仍然通过,它不应该。

它正在读取web.config文件,我已经通过插入乱码来确认它,并popup通用的“发生错误”页面。 我也通过检查进程监视器来确认它,以确保它正在读取正确的web.config文件。

当我尝试设置失败的请求logging时,会发生同样的事情。 在应用程序级别,没有任何logging,但在服务器级别,我得到一个日志,其中不包含太多。 如果我仅在应用程序上启用了Windows身份validation(不带匿名),则可以在失败的请求日志中看到它不会尝试执行除匿名身份validation以外的任何操作。

我试图通过删除/添加angular色向导重新安装IIS,但仍然没有去。

任何人都有线索,我可以尝试下一步?

原来,我们的IIS安装脚本包含以下内容:

Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.applicationHost/applicationPools/applicationPoolDefaults" -Name "enableConfigurationOverride" -Value "False" 

这本质上改变了所有应用程序池的默认设置,禁用了任何configuration覆盖。 本质上,这closures了在我们的网站中使用web.config文件的能力。

这绝对会做到这一点。 我看不到enableConfigurationOverride选项的UI中的任何东西。

所以我只是在Powershell中运行以下内容来解决这个问题:

 Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.applicationHost/applicationPools/applicationPoolDefaults" -Name "enableConfigurationOverride" -Value "True"