Файлы Application.EndRequest, MVC и.htm
У меня есть следующий код в моем 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 ответ
В итоге моя конфигурация выглядит так:
- Трубопровод AppPool: интегрированный
- RouteExistingFiles: false (по умолчанию)
- runAllManagedModulesForAllRequests: true
Все это было так, как я написал этот вопрос. Я по-другому зашел в свой web.config и вручную добавил обработчик в <httpHandlers>
:
<add verb="GET,HEAD,POST,DEBUG" path="*.htm" type="System.Web.UI.PageHandlerFactory" />
Одна вещь, которая меня оттолкнула, это то, что как только файл вышел, браузер кешировал его, а не повторно запрашивал его (пока я не очистил кеш).