我有一个wcf服务,我用它来运行长时间的线程(5-10分钟)。为了防止终端用户浏览器挂起,我将函数传递到一个新线程中。
在这一点上,如果应用程序池回收,我将丢失线程中正在进行的工作。
虽然我确信我可以将一些东西写入处理工作的对象中,但通过sql可以从它停止的地方继续。
我希望有一种方法可以阻止IIS回收,或者更好地恢复线程。
发布于 2012-03-13 07:00:53
我担心,正如您已经发现的那样,使用background tasks in an IIS hosted ASP.NET application是一个非常糟糕的主意。您可以在IIS中配置应用程序池并禁用回收,但这可能会对应用程序性能产生一些其他副作用,因此您可能会重新考虑在Windows Services或控制台应用程序中移动这些后台任务,这些后台任务计划与Windows Scheduler一起运行,并且您不必担心AppDomain可能会在任何时候被回收。
https://stackoverflow.com/questions/9675999
复制相似问题