我继承了大量的WebForms页面,这些页面也充当了自己的JSON API。根据发送给他们的参数,这些页面是:
Response.End()
。现在,我必须在这些遗留JSON API中调用一些异步代码,我使用RegisterAsyncTask
执行此操作。
修改后,我们注意到,即使在Response.End()之后,aspx页面执行仍在继续。这会导致很多崩溃报告,因为页面'模型'在返回JSON时不会 - 并且应该加载。
我认为这是由于Response.End()调用Thread.CurrentThread.Abort
来停止进程,而异步并不总是在UI线程上运行。
ASP.NET中是否有另一种方法,而不是Response.End,以防止在发送响应时执行.aspx?
答案 0 :(得分:0)
您没有显示任何代码,因此我不知道您在哪里注册任务,但您可以:
在PreRenderComplete调用Response.End()。
注册任务后致电ExecuteRegisteredAsyncTasks。