HttpModule 中的 PreSendRequestHeaders 替代方案

Jam*_*uth 3 c# asp.net httpmodule

根据 Asp.Net 团队提供的信息What not to do in Asp.net you should not use PreSendRequestHeadersin a Managed HttpModule。

PreSendRequestHeaders 和 PreSendRequestContext

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

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

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

推荐的替代方法是什么?

Bog*_*nar 5

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

这本质上与 是相同的PreSendRequestHeaders,但是它完全在 ASP.NET 管道内处理,因此它不会出现与本机/托管接口相同的问题PreSendRequestHeaders