IIS应用程序池自动回收问题的有效解决办法

摘要:
某些计划作业无法完成。

问题:Timer不能持续执行,如果长时间没有访问,就会被IIs自动回收。造成一些定时作业无法完成。

解决方式1:改用windows服务或是winform方式

解决方式2:在Application_End事件模拟加载网站页面,唤醒要被回收的资源

private const string DummyPageUrl = "http://localhost/Index.aspx";//可访问的页面
private const string DummyCacheItemKey = "Du";

// 注册一缓存条目在5分钟内到期,到期后触发的调事件
private void RegisterCacheEntry()
{
  if (null != HttpContext.Current.Cache[DummyCacheItemKey]) return;
  HttpContext.Current.Cache.Add(DummyCacheItemKey, "Test", null, DateTime.MaxValue,
  TimeSpan.FromMinutes(5), CacheItemPriority.NotRemovable,
  new CacheItemRemovedCallback(CacheItemRemovedCallback));
}
// 缓存项过期时程序模拟点击页面,阻止应用程序结束
public void CacheItemRemovedCallback(string key, object value, CacheItemRemovedReason reason)
{
  HitPage();
}
// 模拟点击网站网页
private void HitPage()
{
  System.Net.WebClient client = new System.Net.WebClient();
  client.DownloadData(DummyPageUrl);
}
protected void Application_BeginRequest(Object sender, EventArgs e)
{
  if (HttpContext.Current.Request.Url.ToString() == DummyPageUrl)
  {
    RegisterCacheEntry();
  }
}
protected void Application_Start(object sender, EventArgs e)
{
  RegisterCacheEntry();
}

免责声明:文章转载自《IIS应用程序池自动回收问题的有效解决办法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(4)C#工具箱-菜单和工具栏SecureCRT中文乱码解决已设置UTF-8下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.NET应用程序7种最常见的性能问题及其解决方案

译者注:这篇文章依然是介绍.NET Framework框架下的性能问题排查,可能并不直接适用于.NET Core,但有时也能提供一些参考。   .NET应用程序7种最常见的性能问题及其解决方案 原文地址:https://www.eginnovations.com/blog/top-7-net-application-performance-problems...

IIS部署.net core 3.1踩坑总结

1、打包发布:我采用文件系统方式  2、应用程序池配置  3、踩坑:HTTP Error 500.30 错误   这个错误折磨很长一段时间,各种查询解决方案。 ①以下插件根据自己的版本统一下载。 服务器装aspnetcore-runtime-3.1.8-win-x64.exe 下载链接:https://dotnet.microsoft.com/down...

IIS--解决64位系统IIS网站发布出现未能加载文件或程序集“...”或它的某一个依赖项。试图加载

解决64位系统IIS网站发布出现未能加载文件或程序集“...”或它的某一个依赖项。试图加载 ASP.NET MVC 项目发布的在本地IIS后,启动网站出现未能加载文件或程序集“…”或它的某一个依赖项。试图加载格式不正确的程序。此问题只发生在64位系统上,而使用Visual Studio2013启动项目则没有此问题。由此可初步判断是网站发布后产生的问题,一种...

IIS应用程序池自动回收作业

vb: appPoolName = WScript.Arguments(0) Set oWebAdmin = GetObject("winmgmts:rootWebAdministration") Set oAppPool = oWebAdmin.Get("ApplicationPool.Name='" + appPoolName + "'") oA...

Win10安装IIS并配置ASP.NET 4.0

这几天新购置了电脑家用,自家电脑上上了win10+Ubuntu。解决了双系统的一些坑之后,今天准备给win10装IDE了(虽然想在Ubuntu下搞搞React/Python之类的,但我骨子里还是个.Net程序猿)。装完VS、SQLServer、IIS、MVC3、MVC4,搞定后搞个项目试试,结果发现IIS应用程序池下没有.net 4.0,对于一个.Net程...

IIS虚拟目录与UNC路径权限初探

最近在一个项目中涉及到了虚拟目录与UNC路径的问题,总结出来分享给大家。 问题描述 某客户定制化项目(官网),有一个图片上传的功能。客户的Web机器有10台,通过F5负载均衡分摊请求。 假设这10台机器的代号分别为:#1,#2,#3,#4,#5,#6,#7,#8,#9,#10 在没有应用虚拟目录时,访问者A访问官网,可能被分配至机器#1,上传图片,图片被保...