你的位置:首页 > ASP.net教程

[ASP.net教程]aspx运行长时间任务


最近做了个服务用来分解料单、计算可用库存,日消耗一类的操作,以WebService的方式发布并挂在IIS上,客户端启动任务后可能会关闭(等第二天过来看结果)

基本的做法都是在独立的线程中运行任务并在运行过程中写一些状态/进度到全局变量中如(static类型的变量或Application等),客户端每隔一定时间检测这些变量以显示执行状态/进度。

在有客户端不断发请求进来时任务能正常运行并结束,但是如果没有任何客户端持续发请求进来时,默认的IIS应用程序池设置就有可能把w3p.exe进程给回收了。

设置参考下图:

一般需要指定个具体的回收时间,然后禁止回收时间点前一段时间启动任务,因为很可能任务没允许完w3p.exe进程就被干掉了。

需要取消空闲时间回收选项,这里的空闲表示没有请求进来。