在 IIS 中为应用程序池提供多个工作进程有什么缺点吗?它们似乎真的很容易启用,而且(几乎)我读过的所有内容似乎都表明它们很好……那么为什么 IIS 不为每个应用程序池提供 10+ 个工作进程呢?一定有一些不利影响,对吧?
答案1
你的怀疑是对的。Web Gardens 没有缺点是一个巨大的神话,它们会给你带来无穷无尽的问题,但许多人仍然不知道何时应该使用它们。
根据 Chris Adams(来自 IIS 团队)的说法,使用 Web Garden 只有一个原因:让不受 CPU 限制但可执行长时间运行请求的应用程序能够扩展,并且不会用尽工作进程中所有可用的线程。有很多原因导致 Web Garden 不好,但是,人们普遍误以为 Web Garden 没有缺点。
它们会增加系统开销(它们不共享缓存),它们不共享会话(如果切换到另一个进程,用户可能会丢失其会话),InProc 可能会变得混乱。简而言之,它们实际上往往会带来很多麻烦,您不应该在没有充分理由的情况下使用它们。
阅读 Chris 的完整解释:http://blogs.iis.net/chrisad/archive/2006/07/14/1342059.aspx
进一步阅读: http://weblogs.asp.net/owscott/why-you-shouldn-t-use-web-gardens-in-iis-week-24