Application.EndRequest,MVC和.htm文件

时间:2014-06-17 16:17:21

标签: asp.net-mvc httpapplication

我在Global.asax中有以下代码:

void Application_EndRequest(object sender, EventArgs e)
{
    HttpApplication application = sender as HttpApplication;
    HttpContext context = application.Context;
    string path = context.Request.Path;
    string contentType = context.Response.ContentType;

    System.Diagnostics.Debug.WriteLine("-----------------------------------");
    System.Diagnostics.Debug.WriteLine("Path: " + path);
    System.Diagnostics.Debug.WriteLine("ContentType:" + contentType);    
}

我在网站的根目录(〜/ Help)有一个包含静态.htm文件的帮助文件夹。我注意到并非所有这些文件都通过EndRequest运行。有时我会看到页面中的资源被记录(例如.js文件),但不会记录htm文件本身。有时候他们会被记录下来。

为什么所有这些文件都不是通过EndRequest运行的,我怎样才能确保它们能够运行?

1 个答案:

答案 0 :(得分:0)

最后我的配置是这样的:

  • AppPool管道:集成
  • RouteExistingFiles:false(默认)
  • runAllManagedModulesForAllRequests:true

所有这些都是我写这个问题的时候。我做的不同的是进入我的web.config并在<httpHandlers>下手动添加一个处理程序:

<add verb="GET,HEAD,POST,DEBUG" path="*.htm" type="System.Web.UI.PageHandlerFactory" />

让我失望的一件事是,一旦文件出现问题,浏览器就会缓存它而不是重新请求它(直到我清除了缓存)。