Как AssemblyResourceLoader / ASP.Net обрабатывает заголовок If-Modified-Since? - PullRequest
1 голос
/ 04 февраля 2010

У меня есть IHttpHandler, похожий на AssemblyResourceLoader. Он генерирует изображение, а затем отправляет его обратно в браузер.

В AssemblyResourceLoader есть такой блок кода:

    HttpCachePolicy cache = context.Response.Cache;
    cache.SetCacheability(HttpCacheability.Public);
    cache.VaryByParams["d"] = true;
    cache.SetOmitVaryStar(true);
    cache.SetExpires(DateTime.Now + TimeSpan.FromDays(365.0));
    cache.SetValidUntilExpires(true);
    Pair assemblyInfo = GetAssemblyInfo(assembly);
    cache.SetLastModified(new DateTime((long) assemblyInfo.Second));

Я настроил мой так, чтобы он выдавал те же заголовки, что и AssemblyResourceLoader. Я установил заголовок Last-Modified, и браузер отправляет заголовок If-Modified-Since моему обработчику так же, как это делается с AssemblyResourceLoader. Проблема в следующем: мой обработчик никогда не возвращает 304, как AssemblyResourceLoader. Я не могу найти нигде в коде AssemblyResourceLoader, где он имеет дело с заголовком If-Modified-Since, так что я не знаю, как с ним справиться сам Кто-нибудь знает, где ASP.Net делает это и как я могу получить то же поведение из моего обработчика?

Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2010

Похоже, вам нужно сделать это самостоятельно, но это не сложно: http://www.motobit.com/tips/detpg_net-last-modified/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...