Как отключить HTTP Keep-Alive в ASP.NET MVC?

есть ли способ сообщить IIS / ASP.NET не позволять Keep-Alive для определенных запросов? Или даже для всего веб-сайта, если это действительно единственный способ сделать это?

4 ответов


уверен, что это не может быть сделано на уровне запроса.

в IIS 6.0, он был выставлен на вкладке свойств IIS. В IIS 7, они вроде спрятал.


для всего сайта, используя IIS 7....

<configuration>
   <system.webServer>
      <httpProtocol allowKeepAlive="false" />
   </system.webServer>
</configuration>

PS.
Я понимаю, что этот вопрос касается только того, как отключить эту функцию. Однако я подумал, что стоит упомянуть, что отключение KeepAlive было отвлекающим маневром для проблемы, которую я пытался решить. У меня была проблема, когда сообщение jQuery Ajax не сможет отправить содержимое тела на сервер. Хотя включение / выключение KeepAlive, похоже, повлияло на то, насколько я мог воспроизвести свою проблему, фактическое исправление было отключение проверки подлинности Windows в корень сайта. Это связано с тем, что браузер (за кулисами) отправляет запрос на favicon.ico в корне веб-сайта (даже за пределами папки приложения), и если у вас есть Windows Auth включен на этом уровне, NTLM аутентифицирует рукопожатие, и (в техническом плане) он подключает все.

поэтому я удалил эту строку из своего файла конфигурации, чтобы она работала как настройка по умолчанию с включенным KeepAlive..... который кстати лучше для производительности.


Если вы действительно хотите это сделать, адаптируйте IHttpModule в ответ называть ответ.Закрыть на HttpApplication.EndRequest обработчик.

"никогда не используйте этот API"

дополнительная информация о способах завершения ответа...


HTTP Keep-Alives включены по умолчанию в IIS 6.0, который соответствует спецификации HTTP / 1.1 для HTTP Keep-Alives. IIS сохраняет открытым неактивное соединение до тех пор, пока свойство метабазы ConnectionTimeout указывает (значение по умолчанию-120 секунд).

вы можете отключить HTTP Keep Alive, перейдя по ссылке ниже, это для того, чтобы вы могли бы сделать обратное, чтобы отключить.

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d7e13ea5-4350-497e-ba34-b25c0e9efd68.mspx?mfr=true