根据Asp.Net team 在Asp.net中不做什么?提供的信息,您不应该在托管HttpModule中使用PreSendRequestHeaders
。
PreSendRequestHeaders和PreSendRequestContext 建议:不要将这些事件与托管模块一起使用。 PreSendRequestHeaders和PreSendRequestContext事件可以与本机IIS模块一起使用,但不能与实现IHttpModule的托管模块一起使用。设置这些属性会导致异步请求出现问题。
这正是我在图像处理库中所做的,以确保在响应的同时发送正确的mime类型。
建议的替代办法是什么?
发布于 2017-12-21 15:29:07
在BeginRequest
的处理程序中,使用HttpResponse.AddOnSendingHeaders
订阅该事件的处理程序。
这与PreSendRequestHeaders
本质上是一样的,但是它完全是在ASP.NET管道中处理的,因此它在本机/托管接口上没有PreSendRequestHeaders
那样的问题。
发布于 2014-03-26 22:35:31
如果您查看HttpApplication
管道在MSDN的ASP.NET应用生命周期页面,您会发现PreSendRequestHeaders
和PreSendRequestContent
事件在最底层。既然他们建议我们不要在托管IHttpModule
中使用这些事件,那么管道中下一个最接近的事件将是EndRequest
,这与PreSendRequest*事件不同的是确定性的。
我还没有找到任何关于现在指定响应头的首选实践的信息,但是这对您来说是有效的。
https://stackoverflow.com/questions/18707347
复制相似问题