【问题标题】:Unexpected ThreadAbortException in a function函数中出现意外的 ThreadAbortException
【发布时间】:2017-06-12 09:30:14
【问题描述】:

我们有一个应用程序在 5 分钟间隔后(使用计时器)从 Glabal.asax 调用一个函数

该函数与第三方通信,获取数据并将其发送到另一个更新数据库的应用程序。

在第 4 次或第 5 次调用该函数后,在接收来自 3rd 方应用程序的数据时会调用 ThreadAbortException。这会停止整个应用程序。

我们不使用导致 ThreadAbortException 的函数 Response.End、Response.Redirect 或 Server.Transfer。

应用程序池可能会重新启动/回收。但这可能是什么原因? 我将超时更改为 0,这意味着它永远不会超时。但我仍然遇到异常。

谁能给点建议?

谢谢。

【问题讨论】:

  • 听起来你在尝试run a background task in asp.net
  • 我不知道。如何找出来?解决方案是什么?
  • 您是否尝试定期运行与任何实际请求无关的代码?如果是这样,那么将是一个后台任务。我已经为您链接了一篇博客文章,其中讨论了实现此目的的各种方法。使用某种形式的Timer(您不清楚您使用的是哪一种)不在列表中,因为该帖子中还讨论了各种原因。
  • 实在不明白,请问有什么问题或解决方法?

标签: c# .net global-asax threadabortexception


【解决方案1】:

我使用 WebRequest 对象向第三方发出请求。 解决问题的方法是更改​​请求的超时时间。我把它改成了无限的。

WebRequest request = WebRequest.Create(serviceUrl);
request.Method = "POST";
request.Timeout = System.Threading.Timeout.Infinite;

我希望这对遇到类似情况的人有所帮助。不过,我得到了同事的帮助。

编辑 - 我还在 MSDN 上找到了一篇有趣的文章—— Understanding WebRequest Problems and Exceptions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多