我正在尝试为IIS 7.5中的新网站设置Windows身份validation。 我有为该网站启用Windows身份validation模块和所有其他身份validationtypes(如匿名,基本等)被禁用。 该站点的应用程序池在自定义标识下运行,SPN和主机标头已适当设置。 在试图通过浏览器访问站点下的任何内容(如文本文件)时,出现401.2错误。 我遵循这个build议 ,并将useAppPoolCredentials属性添加到applicationHost.config,我可以使用Windows身份validation访问资源。
然后,我删除了属性,并保存applicationHost.config有效地撤消我的变化,我仍然能够访问资源。什么给? 有人能帮我理解这种行为吗?
另外在Win Server 2008R2的IIS 7.5的一个特定安装中,我注意到任何对站点(或应用程序)的默认configuration的更改都会导致IIS自动在站点/应用程序的根目录下生成Web.config文件。 有没有一个设置来启用这个,而不必直接更新applicationHost.config?
编辑浏览器caching响应,因此撤消更改和保存文件似乎没有任何区别。 所以现在唯一的问题是与Web.config的生成有关
关于如何确保configuration更改持久化到站点的web.config而不是applicationHost.config的第二个问题,可以通过function委托来控制。
如果您导航到IISpipe理器的计算机节点,您将看到一个名为“function委派”的图标:

启动这个IIS的“小程序”,你将看到一个可以将其configuration委托给web.config的function列表。
标记为“ 读/写”的设置通常将其设置写入web.config文件。 标记为只读的设置通常将其设置写入applicationHost.config ,并且不能在web.config文件中重写。
在这种情况下,可以将<windowsAuthentication>configuration委托给web.config文件。
小问题:
不是所有的小程序都可以显示您可以configuration的全部设置。 一个很好的例子就是<windowsAuthentication> useAppPoolCredentials <windowsAuthentication> useAppPoolCredentials属性。 在“authentication”小程序中没有任何地方显示,甚至在“ 高级设置”下也没有。
但是,您可以通过configuration编辑器获得此值(以及其他任何值)。 如果您导航到IISpipe理器左侧窗格中的网站节点,您将在pipe理下看到此图标:

如果启动configuration编辑器,将会出现一个包含各种设置树的下拉列表:

如果我们select/system.webServer/security/authentication/windowsAuthentication节点,我们将看到所有可以更改的设置。 在这里,我们可以看到我们感兴趣的设置( useAppPoolCredentials ):

您可以select是否在web.config或applicationHost.config从configuration节树下拉列表中的From:下拉列表中configuration网站的值:

如果一个部分没有被委派为web.config中的读/写 ,那么你会看到以下内容:

我们得到一个警告,说这个特定的function是locking的,所有的设置都是灰色的和禁用的,并且有一个挂锁指示这个function的子设置也被locking。
最后,并不是所有的设置都可以委托,例如站点绑定,应用程序池,虚拟目录。