3

有谁知道httpResponse.End()用不会引发ThreadAbortException性能问题的东西替换的方法?有人建议做一个'HttpContext.Current.ApplicationInstance.CompleteRequest()',但这并不能做所有事情httpResponse.End(),比如向客户端发送缓冲数据,这对我来说是个问题。

4

2 回答 2

3

首先,我怀疑这是否真的会造成重大问题。但是,无论如何,这通常都不是一个好主意……这是对异常的滥用,真的。(无论如何,海事组织。)

文档中

提供此方法只是为了与 ASP 兼容,即与 ASP.NET 之前的基于 COM 的 Web 编程技术兼容。如果您想跳转到 EndRequest 事件并向客户端发送响应,请CompleteRequest改为调用。

显然,当前方法在您调用后仍会继续CompleteRequest,因此您需要确保干净地完成当前事件的处理。

于 2013-01-24T20:28:13.167 回答
1

好的,我能够在这里找到答案。如果您向下滚动到“Jay Zalos”的答案。我替换httpResponse.End()为以下 3 行:

Response.Flush()
Response.SuppressContent = True
HttpContext.Current.ApplicationInstance.CompleteRequest()
于 2013-01-24T20:57:12.063 回答