配置 IIS 以对单个网站使用多个应用程序池

配置 IIS 以对单个网站使用多个应用程序池

我有一个在 IIS 7.5 及更高版本上运行的 Web 应用程序/网站,我正尝试将其配置为使用多个应用程序池来隔离功能,以实现安全性和性能。问题是,当我创建并使用第二个应用程序池时,辅助功能不起作用。网站的其余部分运行正常,但只要我单击使用辅助池中的资源的链接(下载 zip 文件的 ISAPI DLL 链接),它就会显示服务不可用消息 (404)。

我尝试了多种配置,包括授予应用程序池标识、物理路径凭据、Windows 文件权限、Windows 共享权限等的完整/管理员权限(包括对两个应用程序池使用相同的权限),但没有任何变化。文件位于本地服务器上,而不是通过网络(尽管在某些情况下它会通过网络运行)。如果我在单个应用程序池下尝试相同的配置,它可以在多个配置下正常工作,但只要我将主网站功能与辅助功能分开,它就会中断。

似乎存在一些与单独的应用程序池相关的问题,这些问题会覆盖对资源的所有其他权限。奇怪的是,我之前在 10 多台服务器上都使用过此功能,但它在某个时候停止了工作,我不知道为什么。我猜是 Windows 更新“修复”了破坏配置的安全功能。我只是合并了应用程序池,它就运行正常了。随着我们很快从 COM 转向多线程,将来保留此配置将会出现问题。

有什么想法或想法吗?我认为可能需要禁用某些应用程序池隔离安全性吗?

答案1

在 IIS 上为一个网站设置多个应用程序池的唯一方法是将网站拆分为多个应用程序,您始终拥有根应用程序并且可能在其下方有多个应用程序。

每个应用程序都可以分配有自己的应用程序池。

但是在将网站拆分成多个应用程序后,它就不再作为一个单一实体运行,在网站现在分离的这些部分之间,您无法再执行许多操作。

如果不知道详细信息,很难诊断第二个应用程序池失败的原因。它可能在不同的帐户下运行,会话不再共享等。

IIS 本身并没有什么可以阻止您使用各种 appPools 运行站点,但是每个应用程序都有其自身的特点。

如果您说它之前在 10 台服务器上有效,但现在在所有服务器上都不起作用,请检查您对所有服务器的配置做了哪些更改。我不知道 Server 2008 R2 有任何安全修复可以改变其行为,至少自 Service Pack 1 以来没有。

相关内容