切换导航
{{systemName}}
{{ info.Title }}
{{info.Title}}
{{ menu.Title }}
{{menu.Title}}
登录
|
退出
搜索
IIS 服务20分钟后自动停止
作者:ych
你们是不是遇到关于IIS 服务应用程序池20分钟内未进行任何操作而导致服务自动停止的问题 ### 原因 IIS服务部署(新增网站)时默认的“闲置超时(分钟)”为20分钟 ### 解决方法一 将闲置时间改大点,同时把“禁止重叠回收”改为true。 详细介绍: >闲置时间修改: >>在IIS管理器中点击应用程序池,选中需要设置的服务,在右侧点击“高级设置...”,在弹框中的“进程模型”一栏中有个“闲置超时(分钟)”,将后面的数值修改,重新启动服务即可。(本人测过修改为1740的,没问题,网上有人说直接改为0分钟,能解决闲置时间的问题,但线程也会在1740分钟(29小时)之后自动关闭,1740是一个最大值) >禁止重叠回收修改: >>同上步骤,在弹框中的“回收”一栏中有个“禁用重叠回收”,将后面的值改为true。 ### 解决方案二 Global.asax ``` public class Global : HttpApplication { private static string uri = ""; static bool hasRequest = false; ///
/// 当前应用程序启动这件事会发生 ///
protected void Application_Start() { if (!hasRequest) { try { var request = HttpContext.Current.Request; var url = request.Url; var port = url.Port; uri = url.AbsoluteUri; // 直接赋值给类级别的 uri hasRequest = true; } catch (Exception ex) { string message = ex.Message; SystemConfig.WriteLog("******应用启动****** 异常信息: " + message); } } } protected void Application_End() { try { string address = uri; if (string.IsNullOrEmpty(address)) { address = "http://localhost:8002"; // 默认地址 } // 记录服务停止信息 SystemConfig.WriteLog("******服务停止****** 服务地址: " + address); // 创建 WebClient 实例并下载数据 using (WebClient client = new WebClient()) { client.DownloadData(address); } } catch (Exception ex) { string message = ex.Message; SystemConfig.WriteLog("******服务停止****** 异常信息: " + message); } } } ``` 思路: 因为当服务停止时会触发Application_End()方法,这时让它再去加载一下当前服务,相当于一旦超过规定的闲置时间,就让他继续工作一次,这样就可以再次触发Application_Start()方法,服务将会继续工作。 ### 更多思考 #### 关于“避免进程被释放”的思路 虽然你希望通过触发 Application_End() 再次调用 Application_Start() 来保持服务的持续工作,但实际上,这并不能根本上避免进程的释放。Application_End() 的触发意味着应用程序池的回收或服务的停止,这是 IIS 管理的一部分。 #### 可考虑的替代方案 1.使用持久服务:考虑将长时间运行的任务放到独立的 Windows 服务或后台任务调度工具(如 Quartz.NET)中,这样可以避免应用程序池的影响。 2.调整 IIS 设置:如前所述,调整应用程序池的闲置回收时间和内存限制,以减少服务被回收的频率。 3.定时请求:如果你必须在 ASP.NET 应用程序中工作,可以考虑设置一个定时请求机制,以保持应用程序活跃,尽管这不是最佳实践,可能会导致资源浪费。 4.使用 Application Initialization:启用 IIS 的应用程序初始化功能,以减少应用程序的启动时间和降低请求失败的风险。
相关推荐
IIS应用程序池自动回收机制导致异常
iis关闭回收机制,保证iis不回收
IIS 启动后立即加载和执行 Startup 方法
进行IIS部署uniapp启用hostory
网站在IIS发布后每隔一段时间请求变缓慢的处理方案
内网部署的报表不能加载外网js问题处理如ai.0.js
VUE发布到IIS及URL重写
从零学习使用IIS搭建Web服务器部署网站
评论区
先去登录
版权所有:机遇屋在线 Copyright © 2021-2025 jiyuwu Co., Ltd.
鲁ICP备16042261号-1