我刚刚在msdn上看到一个博客,即.Net 4.5.1引入了新的应用程序池设置App Suspend。在什么情况下,您希望将应用程序池设置为“暂停”而不是“终止”,反之亦然?如果“挂起”空闲模式比“终止”更好,那么为什么不拖延到暂停并摆脱“终止”空闲模式。应用程序暂挂IIS应用程序池.Net 4.5.1
回答
IIS版本6及以上版本使用应用程序池来为网站提供服务。每个应用程序池基本上都是一个单独的工作进程,它将响应您在该应用程序池中拥有的任何网站的请求。它有助于隔离不同的网站(资源使用情况,错误,安全漏洞等)。
应用程序池的结构部分,它们默认情况下是“回收”或重新启动以避免应用程序崩溃或重置内存泄漏。
有迹象表明,导致应用程序池回收方式主要有三种:
- 基于时间间隔(默认情况下它被设置为每29小时)
- 无响应(由IIS检查应用程序的性能测量)
- 配置的改变(改变web.config文件或应用程序池设置)
回收利用是不是一个大问题,因为IIS将创建一个新的进程和传输请求是因此可以终止旧流程,因此在服务请求方面没有任何差距。 但是,如果某个时间段(默认为20分钟)没有请求,则应用程序池将设置为完全终止该进程。
当应用程序池关闭并且有新的请求进入时,工作进程启动,加载.NET框架,编译应用程序中的任何页面并最终提供请求的时间明显滞后数秒。这被称为“冷启动”,可能会给用户带来不好的体验。
如果你想要(如果你需要几个大的应用程序),你可以禁用回收设置和基于超时的终止选项,但是如果你在单个服务器上运行很多站点,的持续流量,您可以通过使用新的“暂停”选项节省资源。
而不是完全终止进程,而是IIS将其移动到非常低的内存状态。这样,如果有新的请求进入,您的应用程序立即启动。没有滞后。但是当没有流量时,它只占用很少的内存,并且没有CPU,因此服务器上没有任何开销。
这实际上意味着共享环境与服务器运行大量的网站。如果你有持续的流量,你不会注意到有什么不同,因为应用程序池永远不会停止,但如果你坚持默认设置,那么我强烈建议将应用池设置为挂起模式。 请注意,这需要Windows Server 2012 R2和.NET 4.5.1才能运行。
这里的YouTube视频从Visual Studio团队进一步解释它: https://www.youtube.com/watch?v=hXw5gyqTxoo
仍然没有得到答案!如果您在专用物理机器上托管您的站点,并且只有一个网站应用程序和一个专用应用程序池,那么为什么不将该应用程序池设置为暂停? – user384080
它已经被回答: - 如果你有持续的流量,应用程序池不会停止。 - 如果您没有固定流量,则可以禁用超时设置,以便应用程序池不会停止。 - 但是,如果您没有固定流量,并且启用了超时设置,那么当设置为“终止”时,应用程序池将完全关闭,这会对站点提出的新请求要慢得多。将其设置为“挂起”将避免完全关闭,因此新请求不会花费太长时间。 如果该选项可用,没有理由不将其设置为“挂起”。 –
只是旁白,因为该帖子提到Windows Server 2012 R2和.net 4.5.1是必需的,实际上它是IIS8.5的一个功能(所以如果你有IIS 8.0,你可以选择...)检查这个:http://www.iis.net/learn/get-started/whats-new-in-iis-85/idle-worker-process-page-out-in-iis85 –
- 1. IIS发布4.5.1 web应用程序到应用程序池4.0
- 2. iis7应用程序池挂
- 3. IIS应用程序池
- 4. IIS应用程序池PID
- 5. IIS应用程序池
- 6. 应用程序池版本4是否支持.net Framework 4.5.1?
- 7. IIS应用程序池和多线程
- 8. 从IIS应用程序池运行应用程序
- 9. 为应用程序设置应用程序池iis express 7.5
- 10. IIS应用程序池标识
- 11. IIS 7.5 ISAPI应用程序池安全
- 12. IIS应用程序池:列表配置
- 13. IIS应用程序池和缓存
- 14. IIS应用程序池回收
- 15. 在IIS中枚举应用程序池
- 16. 创建IIS 6应用程序池
- 17. IIS 6应用程序池管理
- 18. IIS 6.0应用程序池崩溃
- 19. IIS 6.0应用程序池共享DLL
- 20. IIS应用程序池和静态类
- 21. 应用程序在IIS 7.0 2.0应用程序池中运行,但不在1.1应用程序池中
- 22. 一个应用程序池不断悬挂IIS 7
- 23. 客户端断开挂起IIS应用程序池
- 24. 经典的ASP网络应用程序运行.NET 4.5.1的IIS子应用程序
- 25. IIS不能创建一个.net 3.5应用程序池
- 26. IIS应用程序池和.NET垃圾回收
- 27. WindowsIdentity和经典.Net应用程序池
- 28. .NET应用程序池经常溢出
- 29. 回收应用程序池作为应用程序池标识
- 30. 引导Asp.Net应用程序不使用IIS应用程序池配置StartMode =“AlwaysRunning”
你可能是对SF最好与你的问题。 – nphx
有什么意见吗? – user384080