2012-12-05 6 views
6

私は最近、一部のASP.NET MVC 3および4サイトをIIS 7に移行しており、大きな問題がありました。通常、この修正はWebに次のものを含めることです.Config管理対象モジュールとは何ですか?

<system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true"/> 
    <modules runAllManagedModulesForAllRequests="true" /> 
</system.webServer> 

私の質問は、なぜですか?マネージモジュールとは何ですか?また、ASP.NET MVC/C#でどのように動作しますか?

EDIT: この問題は、Server 2008 R2とIIS 7.5には存在しないことがわかりましたが、問題はまだありません。マネージドモジュールとは何ですか?コード?

+0

あなたはわかりません。なぜそれらをすべて使用するように設定されていないのですか?私はそれがデフォルトだと思う。あなたが投稿したすべての変更をその例外の_except_にして、それが機能するかどうかを確認してから、_only_を変更して動作するかどうか試してみてください。 –

+0

私はそれを有効にする唯一の変更です。それは私がサイトをプッシュした少なくとも3台のサーバーのデフォルトではありません。多くの開発者がコードを書くときにやりとりしていることを考えず、自分のような貧弱なシステム管理者が作品を手に入れようとすると、ビジュアルスタジオの外で作業することになるので、イライラします。 MVC4と思われるものを開発者が使用し始めるまで、おそらくこのサイトには10​​0サイトのサイトがあり、この問題は一度も起こりませんでした。 – Preston

+0

通常、IISはURL拡張に基づいて特定のモジュールに要求をルーティングします。たとえば、.aspxはIIRC、Aspnet_isapi.dllにルーティングされます。しかし、MVC URLには拡張子がありません。したがって、管理対象モジュールが予想される拡張子を持つURLだけでなく、どのURLにも対応できるようにする必要があります。 'runAllManagedModulesForAllRequests'は、アプリケーションで定義されたいずれかのルートにマッチした場合、MVCルーティングモジュールが無限URLでクラックを取得するようにします。 IIS7は大きな変更であったため、手動で設定する必要がありました。 7.5には、この共通の問題の修正が含まれていました。 – Will

答えて

5

モジュールは、要求パイプラインのあるポイントにプラグインするASP.Netコンポーネントです。 you can also code your ownですが、多くの "公式の"モジュールがあります。

IIS listing of modules

あなたが見ることができるように、モジュールは、出力キャッシュ、認可および認証の様々な種類、および大いに多くを含む様々な機能を実行します。


It's best not to run all managed modules;可能ならば、特定のアプリケーションやプラットフォームに必要なモジュールを把握することができます。 ASP.Net MVCの場合、ルーティングモジュールはおそらくSystem.Web.Routing.UrlRoutingModuleです。

関連する問題