iis 回收 mysql才释放_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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值