11

WindowsAzureでホストされているASP.NETMVCアプリケーションがあり、Webサイトから提供されるすべての静的ファイルがASP.NETによって処理されています。IISに静的ファイルを直接提供させ、それらの要求をASP.NET経由でルーティングしないようにする方法はありますか?サーバーからこれらの静的ファイルを返すパフォーマンスの向上に役立てたいと思っています。

これがASP.NETMVC自体が行うことなのか、それともAzureでホストしているためなのかはわかりません。

更新:これを実行しようとしている主な理由は、静的ファイルがアプリケーションに登録されているすべてのHttpModuleによって処理されるため、パフォーマンスが低下するためです。

4

2 に答える 2

7

web.configの「 runAllManagedModulesForAllRequests='true'」定義を削除し、静的コンテンツに対して実行したくないHttpModule登録に「 preCondition='managedHandler 」を追加しました。

ダリンの答えも実装しました。

完全に私が探していたものではありませんが、それは法案に適合しているようです。

更新:web.configから「runAllManagedModulesForAllRequests = true」を削除する場合は、IISが最新であることを確認してください。最新でない場合、拡張子のないURIは機能しなくなります。それについてのKB:http ://support.microsoft.com/kb/980368/en-us

(もちろん、そのオプションを保持している場合でも、サーバーが最新であることを心配する必要があります。)

于 2011-09-06T14:37:27.157 に答える
6

IIS 7統合モードで使用すると、すべての要求はマネージパイプラインを通過します。それは十分に最適化されており、心配する必要はありません。一方、これらの静的ファイルがアプリケーションのASP.NETルーティングエンジンによってインターセプトされていることに気付いた場合は、それらをIgnoreRoute定義としてに追加してみてくださいGlobal.asax

于 2011-09-06T14:12:22.673 に答える