【问题标题】:IIS Site application pool vs app application poolIIS 站点应用程序池与应用程序应用程序池
【发布时间】:2021-10-14 21:09:17
【问题描述】:

我不太明白网站的应用程序池和单独应用程序的应用程序池有什么区别。

我的意思是为什么我们需要为网站指定应用程序池?

站点应用程序池的“v4.0”和“无管理代码”CLR 版本有什么区别?

例如,我们可以为站点应用程序池指定“v4.0”,为单独应用程序的应用程序池指定“No Manage Code”,它将起作用。

【问题讨论】:

  • 1) 不要一起问一堆问题。那只会把事情搞砸。 2) docs.microsoft.com/en-us/iis/get-started/… "在 IIS 7 及更高版本中,每个站点都必须有一个名为根应用程序或默认应用程序的应用程序。"这就是该站点还需要其应用程序池的原因。
  • 谢谢。如果站点应用程序池停止,应用程序会发生什么情况?如果应用程序和网站放置在不同的应用程序池中。
  • 为什么不在机器上测试结果?
  • 我停止了网站的应用程序池。而且...应用程序继续运行,接受请求。这真是令人困惑。
  • 为什么会让人困惑?它清楚地表明应用程序池(站点的根应用程序,以及同一站点下的其他自定义应用程序)是相互隔离的,这是大多数场景的预期。

标签: iis application-pool


【解决方案1】:

我不太明白网站的应用程序池和单独应用程序的应用程序池有什么区别。我的意思是为什么我们需要为网站指定应用程序池?

应用程序池用于分隔共享相同配置和应用程序边界的 IIS 工作进程集。应用程序池用于隔离我们的 Web 应用程序,以提高安全性、可靠性、可用性和性能,并且它们可以继续运行而不会相互影响。

应用程序池是作为单个进程运行的网站集合,具有单一身份。您可以在单个应用程序池下运行多个网站,但不能在多个应用程序池中运行单个网站。在应用程序池上拆分网站可以在网站之间提供更严格的安全性,并防止一个网站在另一个网站崩溃时崩溃。将多个站点合并到一个应用程序池的好处是可以共享资源,或者在服务器上留下更小的服务器占用空间。

更多信息可以参考这个链接:Application Pools

站点应用程序池的“v4.0”和“无管理代码”CLR 版本有什么区别?

“v4.0”是 .NET Framework 的版本,“No Manage Code”是 CLR 的版本,当您为应用程序池指定 .NET CLR 版本为“v4.0”时,IIS 会加载到其工作线程中处理一些 ASP.NET 支持库(如用于经典管道模式的 aspnet_isapi.dll 和用于集成模式的 webengine4.dll)。当您将 .NET CLR 版本指定为“无管理代码”时,这意味着您只运行非 ASP.NET 4.x 和 2.x 应用程序(PHP、ASP.NET Core 等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2021-04-22
    • 2011-09-20
    • 2011-06-11
    相关资源
    最近更新 更多