Я не видел никаких вопросов, посвященных этой конкретной проблеме.
Когда используется URL-маршрутизация, запрос поступает в IIS, а затем направляется на страницу Aspx. Например, сайт: www.site.com/products может направить запрос на wwwroot / inetpub / mysite / pages / productsPage.aspx.
Важно отметить, что страница имеет МАРШРУТ, а не переадресацию.
Обратите внимание, что для правильной работы URL-адресов в IIS 6 необходимо Расширение подстановочного знака должен быть настроен, который направляет все ресурсы в Asp.Net (Asp.Net затем вернет статические ресурсы обратно). Это описано здесь: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/
Похоже, что IIS не архивирует контент при отправке обратно. Я выполнил инструкции здесь: http://www.kavinda.net/2007/02/17/how-to-enable-http-compression-iis6.html
чтобы включить сжатие IIS 6.
Есть идеи, почему сжатие Http не работает? Кажется, он отлично работает на других сайтах на моем сервере. Только тот с маршрутизацией URL не работает
Лучше всего использовать HttpCompress пользователя Bel Лоури. Это простой, бесплатный HttpModule с открытым исходным кодом, обрабатывающий HTTP-сжатие ваших страниц. Вы можете использовать его в сочетании с опцией IIS Http Compression.
Я использую HttpCompress в сочетании с Vici MVC, и он работает плавно!
Я часами искал в сети, и я либо использовал HttpCompress, либо купил коммерческий проект (у программного обеспечения Port80 есть решение), либо написал свой собственный HttpModule.
PS: IIS выполняет HTTP-сжатие на основе расширения файла. Вот почему он не работает для веб-сайтов, использующих маршрутизацию URL-адресов.
Сделайте так, чтобы ваше приложение ASP.NET сжало свои выходные данные с помощью такого метода, как вот этот.
Извините за столь позднее обсуждение, но поскольку мне (все еще) нужно включить сжатие IIS 6 на сайте MVC, вот собственное решение IIS 6, которое я нашел: Включить в сжатые расширения axd
. Предположим, что у вас правильно включено расширение IIS 6 без поддержки URL-адресов из .Net framework 4.
Я сделал это прямо в метабазе IIS. (Как объяснено Вот; %windir%\systems32\inetsrv\metabase.xml
. Перед редактированием остановите IIS или включите «горячее редактирование метабазы» в IIS и сделайте резервную копию.)
Извлечение из моей конфигурации:
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="0"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
html
txt
xml
css
js"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe
cgi
aspx
asmx
ashx
axd"
>
</IIsCompressionScheme>
<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip"
HcCompressionDll="%windir%\system32\inetsrv\gzip.dll"
HcCreateFlags="1"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcDynamicCompressionLevel="9"
HcFileExtensions="htm
html
txt
xml
css
js"
HcOnDemandCompLevel="10"
HcPriority="1"
HcScriptFileExtensions="asp
dll
exe
cgi
aspx
asmx
ashx
axd"
>
</IIsCompressionScheme>
<IIsCompressionSchemes Location ="/LM/W3SVC/Filters/Compression/Parameters"
HcCacheControlHeader="max-age=86400"
HcCompressionBufferSize="8192"
HcCompressionDirectory="%windir%\IIS Temporary Compressed Files"
HcDoDiskSpaceLimiting="TRUE"
HcDoDynamicCompression="TRUE"
HcDoOnDemandCompression="TRUE"
HcDoStaticCompression="TRUE"
HcExpiresHeader="Wed, 01 Jan 1997 12:00:00 GMT"
HcFilesDeletedPerDiskFree="256"
HcIoBufferSize="8192"
HcMaxDiskSpaceUsage="99614720"
HcMaxQueueLength="1000"
HcMinFileSizeForComp="1"
HcNoCompressionForHttp10="FALSE"
HcNoCompressionForProxies="FALSE"
HcNoCompressionForRange="FALSE"
HcSendCacheHeaders="FALSE"
>
</IIsCompressionSchemes>
Рационально: внутренние URL-адреса без расширений работают в IIS 6 путем вызова eurl.axd
страница. Посмотри это блог для более подробного объяснения расширений без URL-адресов в IIS6 с fx4.
Вы пробовали этот способ? MS KB322603
Чтобы разрешить IIS 5.0 сжимать страницы ASPX, выполните следующие действия: