この特定の問題に具体的に対処する質問は見たことがありません。
URLルーティングが使用されている場合、リクエストはIISに送られ、Aspxページにルーティングされます。たとえば、サイト:www.site.com/productsがリクエストをwwwroot/inetpubにルーティングする場合があります。 /mysite/pages/productsPage.aspx
ページはリダイレクトではなくルーティングされていることに注意することが重要です。
IIS 6でURLを正しく機能させるには、ワイルドカード拡張機能を設定する必要があることに注意してください。すべてのリソースをAsp.Netに(Asp.Netは静的リソースを引き渡します)これはここに文書化されています: http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet -mvc-to-iis-6 /
IISは、コンテンツを返送するときにコンテンツをGZipで圧縮しないようです。ここの手順に従いました: http://www.kavinda.net/2007/02 /17/how-to-enable-http-compression-iis6.html
IIS 6圧縮を有効にします。
Http圧縮が機能しないように見える理由はありますか?サーバー上の他のサイトでは正常に機能しているようです。 URLルーティングのあるものだけが機能していません
this one のようなメソッドを使用して、ASP.NETアプリケーションの出力自体をgzipで圧縮します。
最善の方法は、Bel Loweryによる HttpCompress を使用することです。これは、ページのHTTP圧縮を処理するシンプルで無料のオープンソースのHttpModuleです。 IIS Http圧縮オプションと組み合わせて使用できます。
HttpCompressをViciMVCと組み合わせて使用すると、スムーズに動作します。
私は何時間もネットを検索していて、HttpCompressを使用するか、商用プロジェクトを購入するか(Port80ソフトウェアにソリューションがあります)、独自のHttpModuleを作成しました。
PS:IISはファイル拡張子に基づいてHTTP圧縮を行います。そのため、URLルーティングを使用するWebサイトでは機能しません。
この方法を試しましたか? MS KB3226
IIS 5.0で.aspxページを圧縮できるようにするには、次の手順に従います。
議論が遅くなって申し訳ありませんが、MVCサイトでIIS 6圧縮を有効にする必要があるため、ここに私が見つけたIIS6ネイティブソリューションを示します。圧縮された拡張機能ではaxd
。これは、.Net Framework4からのIIS6拡張子の少ないURLサポートが正しく有効になっていることを前提としています。
私はそれを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>
合理的:内部的には、IIS 6では、eurl.axd
ページを呼び出すことにより、拡張子の少ないURLが機能します。 fx4を使用したIIS6の拡張子のないURLの詳細については、これを参照してください blog 。