Почему мои заголовки ETag работают под IIS, а не под веб-сервером VS2010? - PullRequest
0 голосов
/ 26 июля 2011

В моем приложении ASP.NET MVC 2 у меня есть следующие строки:

Response.Cache.SetMaxAge(TimeSpan.FromDays(90));
Response.Cache.SetETag(lastWriteTime.Value.Ticks.ToString());

Используя Fiddler для отслеживания потоков HTTP, я вижу:

ETag: 634473035667000000

в заголовках ответа при работе под IIS7, но когда я работаю под веб-сервером Visual Studio 2010, этот заголовок просто ... исчезает. Независимо от того, установил ли я его через Response.Cache.SetETag () или через Response.AppendHeader («ETag», etag), он просто никогда не будет возвращен.

Это «функция» веб-сервера IIS? Есть какие-то настройки конфигурации, которые я пропустил? Если я должен подключиться к процессу IIS, чтобы иметь возможность что-то отлаживать, то это сделает тестирование недействительным кэша немного затруднительным ...

РЕДАКТИРОВАТЬ: также кажется, что, несмотря на вызов Response.Cache.SetCacheability (HttpCacheability.Public), VS / Cassini всегда возвращает ресурсы с HTTP Cache-Control, установленным в «private» ... это помогает?

Ответы [ 2 ]

4 голосов
/ 26 июля 2011

ETag будет подавлен, если вы используете HttpCacheability.Private.

Более подробную информацию можно найти по Почему HttpCacheability.Private подавляет ETag?

Если вы измените его на HttpCacheability.ServerAndPrivate, оно должно работать

4 голосов
/ 26 июля 2011

Просто - это Кассини.

Cassini не предназначен для того, чтобы быть рабочим сервером, но он предназначен для облегчения отладки (именно поэтому он также отменяет кэширование - в конце концов, если вы перекомпилируете и перезапустите, вы бы хотели, чтобы ваш новый код не затрагивался, потому что страницакэшируется?)

Если вы хотите, чтобы ваша отладка работала так же, как в IIS, тогда IISExpress - это то место, куда вы должны идти ... там нет проблем с подключением, так как это раскручиваетреальный экземпляр IIS, но в вашем собственном контексте пользователя.

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