我有一个wcf服务,我用它来运行长寿命的线程(5-10分钟)。我正在将该函数传递给一个新线程,以防止最终用户浏览器挂起。
此时如果应用程序池回收,我将松开在线程中完成的工作。
虽然我确定我可以在处理工作的对象中写一些内容,以便通过sql从中断处继续。
我希望有办法让IIS不再回收,或者最好还是继续使用。
答案 0 :(得分:3)
我担心做background tasks in an IIS hosted ASP.NET application是一个非常糟糕的主意,因为你已经发现了。您可以在IIS中配置应用程序池并禁用回收,但这可能会对您的应用程序性能产生一些其他副作用,因此您可能会重新考虑在计划与Windows Scheduler一起运行的Windows服务或控制台应用程序中移动这些后台任务不必担心AppDomain可能随时被回收。