Пользовательское перенаправление IIS7 не передает заголовок If-Modified-Since. Ошибка? - PullRequest
3 голосов
/ 20 января 2011

Мы используем следующую технику, чтобы перехватить все несуществующие URL-адреса и предоставить нашу собственную результирующую страницу:

<handlers>
  <add name="Foo" path="foo.aspx" verb="*" type="Foo.UrlHandler" preCondition="integratedMode,runtimeVersionv2.0"/>
</handlers>

<httpErrors errorMode="Custom">
  <remove statusCode="404"/>
  <remove statusCode="405"/>
  <error statusCode="404" path="/foo.aspx" responseMode="ExecuteURL"/>
  <error statusCode="405" path="/foo.aspx" responseMode="ExecuteURL"/>
</httpErrors>

Однако, когда я проверяю, какие заголовки запроса передаются в UrlHandler, я вижу все, кроме одного: заголовок If-Modified-Since не передается. Хотя я вижу все остальные (Cache-Control, Accept и т. Д.).

Был ли опыт с этим? Это как-то связано с этим вопросом:

Отправка форм в HttpHandler 404+ в IIS7: почему пропали все данные POST?

Обновление : я не один - http://www.webmasterworld.com/microsoft_asp_net/3935439.htm

1 Ответ

1 голос
/ 21 января 2011

решаемая. Если у кого-то есть такая же проблема:

Я изменил проект на .NET MVC (2, но 1-3 все должно подойти). Сделан единый маршрут для всех:

public static void RegisterRoutes(RouteCollection routes)
{
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  routes.MapRoute("All", "{*url}", new { controller = "CatchAll", action = "Index" });
}

Затем добавил один контроллер CatchAll, чтобы он выполнял то же, что и мой HttpHandler.

...