3

根据 Asp.Net 团队给出的信息,在 Asp.net 中不应该做什么,PreSendRequestHeaders你不应该在托管的 HttpModule 中使用。

PreSendRequestHeaders 和 PreSendRequestContext

建议:不要将这些事件与托管模块一起使用。

PreSendRequestHeaders 和 PreSendRequestContext 事件可用于本机 IIS 模块,但不能用于实现 IHttpModule 的托管模块。设置这些属性可能会导致异步请求出现问题。

这正是我在图像处理库中所做的,以确保与响应一起发送正确的 mime 类型。

推荐的替代方法是什么?

4

2 回答 2

4

在 的处理程序中BeginRequest,用于HttpResponse.AddOnSendingHeaders订阅该事件的处理程序。

这与 本质上是相同的PreSendRequestHeaders,但是它完全在 ASP.NET 管道中处理,因此它与本机/托管接口PreSendRequestHeaders没有相同的问题。

于 2017-12-21T15:29:07.383 回答
1

如果您查看MSDN 的 ASP.NET 应用程序生命周期页面HttpApplication上的管道,您会在最底部找到事件。现在他们建议我们不要在 managed s 中使用这些,管道中下一个最接近的事件是,与 PreSendRequest* 事件不同,这是确定性的。PreSendRequestHeadersPreSendRequestContentIHttpModuleEndRequest

我无法找到有关现在指定响应标头的首选做法的任何信息,但这对您有用。

于 2014-03-26T22:35:31.803 回答