结束异步Webforms执行

时间:2018-03-30 07:41:02

标签: c# webforms async-await .net-4.5

我继承了大量的WebForms页面,这些页面也充当了自己的JSON API。根据发送给他们的参数,这些页面是:

  • 返回一个完整的HTML页面。
  • 返回JSON响应并使用dreaded终止页面 Response.End()

现在,我必须在这些遗留JSON API中调用一些异步代码,我使用RegisterAsyncTask执行此操作。

修改后,我们注意到,即使在Response.End()之后,aspx页面执行仍在继续。这会导致很多崩溃报告,因为页面'模型'在返回JSON时不会 - 并且应该加载。

我认为这是由于Response.End()调用Thread.CurrentThread.Abort来停止进程,而异步并不总是在UI线程上运行。

ASP.NET中是否有另一种方法,而不是Response.End,以防止在发送响应时执行.aspx?

1 个答案:

答案 0 :(得分:0)

您没有显示任何代码,因此我不知道您在哪里注册任务,但您可以: