是否有人知道如何用不会导致httpResponse.End()
导致性能问题的内容替换ThreadAbortException
?有人建议做一个'HttpContext.Current.ApplicationInstance.CompleteRequest()',但这并没有做httpResponse.End()
所做的一切,比如将缓冲数据发送到客户端这对我来说是个问题。
答案 0 :(得分:3)
首先,我怀疑这是真的导致重大问题。然而,无论如何,这通常都不是一个好主意......真的是滥用例外。 (无论如何,IMO。)
此方法仅用于与ASP兼容,即与ASP.NET之前的基于COM的Web编程技术兼容。如果您想跳到EndRequest事件并向客户发送回复,请改为呼叫
CompleteRequest
。
显然,在您致电CompleteRequest
后,当前方法仍会继续,因此您需要确保干净地完成当前事件的处理。
答案 1 :(得分:1)
好的,我找到了答案here。如果你向下滚动到'Jay Zalos'的回答。我用以下3行代替httpResponse.End()
:
Response.Flush()
Response.SuppressContent = True
HttpContext.Current.ApplicationInstance.CompleteRequest()