我有一个简单的'文件下载'通用处理程序,它在通过相同的响应发送文件之前设置响应内容类型和标题。
我还在global.asax中设置了Response.Cache.SetCacheability(HttpCacheability.server)。
正如我从各种来源注意到的那样,Internet Explorer不喜欢这种无缓存设置,并在尝试下载文件时出错(请求的网站不可用或无法找到)。
我想也许我可以在.ashx页面中覆盖此设置,因此我将响应的可缓存性设置更改为public。这没有解决问题...从global.asax删除行确实解决了问题但显然影响了整个站点。
有没有办法为我的通用处理程序设置可达性?
干杯:D
答案 0 :(得分:0)
您是否可以检查请求是否针对您的通用处理程序,并根据结果提供相应的缓存设置?像这样:
public void Application_OnPreRequestHandlerExecute(object sender, EventArgs e)
{
if (!HttpContext.Current.Request.Url.AbsolutePath.EndsWith("MyHandler.asxh", StringComparison.InvariantCultureIgnoreCase))
{
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.Server);
}
}