![当其他网站被使用时,IIS DefaultAppPool 会挂起](https://linux22.com/image/635039/%E5%BD%93%E5%85%B6%E4%BB%96%E7%BD%91%E7%AB%99%E8%A2%AB%E4%BD%BF%E7%94%A8%E6%97%B6%EF%BC%8CIIS%20DefaultAppPool%20%E4%BC%9A%E6%8C%82%E8%B5%B7.png)
我对 Windows Server 还很陌生,所以很抱歉问了一些愚蠢的问题。我有一台 Windows Server 2008 R2 Enterprise。AppPools 很少。问题是,默认应用程序池40 个用户在线后停止响应(取决于 loadimpact 测试)。
奇怪的是,当我在配置的网站上进行负载测试时测试池或者测试池(不同的域名、不同的网站和数据库默认应用程序池),默认应用程序池网站挂了,而测试池网站很好。
此负载测试对服务器的 CPU 或内存使用率没有影响。我尝试过监控HTTP 服务请求队列和适用于 W3SVC 的 W3WP性能监视器中没有检测到任何变量,但没有发现任何异常迹象。还检查了连接限制- 这是默认值。
我该如何追踪这个问题?
答案1
在 IIS 中标记为应用程序的任何目录都可以在任何应用程序池中运行。虚拟目录和物理目录只在其父应用程序/站点/层次结构中位于其上方的任何目录中运行。
由于 DefaultAppPool 是一个包罗万象的应用程序池,我猜测在某个时候,其他某个网站的一部分被标记为应用程序,并且该应用程序被设置为在 DefaultAppPool 中运行。
因此,当 TestPool.com/ 在 TestPool 中运行时,TestPool/AppA 是否设置为在 DefaultAppPool 中运行?
虽然 GUI 为每个站点创建一个应用程序池并尝试保持一切井然有序,但脚本需要自己管理这类细节,这可能会导致这种看似违反直觉的情况。
否则,似乎可能有一个组件在其他站点运行时回调到 DefaultAppPool - 例如身份验证代理或另一个 Web 服务模块 - 因为应用程序池通常彼此隔离,并且只能通过共享依赖项相互影响。
您通常可以右键单击应用程序池并选择“查看应用程序”,以确定其他站点的一些小应用程序是否侵入了特定的应用程序池。