无法在IIS 7中执行任务的子任务

时间:2013-12-03 09:07:25

标签: c# asp.net .net iis-7

我正在开发一个类似于以下结构的系统

enter image description here

Level1-sub-tasks由任务通过.net 4.0的TaskFactory创建,Level2-sub-tasks由level1-sub-tasks同样创建。

所有任务都在调试中运行文件,但是当我在IIS服务器上部署该文件时,所有level2子任务都会停止执行。

我不是iis的有经验的开发人员,它对多级线程(任务)有任何限制吗?

1 个答案:

答案 0 :(得分:1)

如果您在处理请求时确实生成新线程,请确保在返回响应之前完成所有线程。您可能会认为“我会尽快返回用户,并在后台保留一个线程,将数据保存到数据库中。”这很危险,主要是因为可以回收AppDomain,中止后台线程。

或者,使用IRegisteredObject界面告诉asp.net你在后台做一些工作。这里详细介绍了这种方法:http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx/

请注意,这不是防故障的,并且有更好的方法 - 这一切都取决于你想要实现的目标。在大多数情况下(例如,发送电子邮件通知),最佳解决方案是安排一个任务(在一个单独的过程中)定期使工作项出列。