【问题标题】:Can not execute subtask of a task in IIS 7无法在 IIS 7 中执行任务的子任务
【发布时间】:2013-12-03 09:07:24
【问题描述】:

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

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

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

我不是经验丰富的 iis 开发者,它对多级线程(任务)有什么限制吗?

【问题讨论】:

  • 我假设您在收到请求时创建这些任务。您是否等待这些任务完成后再返回对请求的响应?
  • @dcastro 这些任务是异步运行的,在这种情况下客户端不需要等待任务结果并立即得到响应。

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


【解决方案1】:

如果您在处理请求时确实产生了新线程,请确保它们都已完成,然后再返回响应。你可能会想“我会尽快返回给用户,并在后台留下一个线程将内容保存到数据库中。”这很危险,主要是因为 AppDomain 可能会被回收,从而中止您的后台线程。

或者,使用IRegisteredObject 接口告诉asp.net 你正在后台做一些工作。该方法在此处详细说明:http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx/

请注意,这并不是万无一失的,并且有更好的方法来解决这个问题 - 这完全取决于您要达到的目标。在大多数情况下(例如,发送电子邮件通知),最好的解决方案是安排一个任务(在一个单独的进程中)定期出列工作项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2013-07-13
    • 1970-01-01
    • 2017-12-29
    相关资源
    最近更新 更多