<system.web>と<system.webServer>の違いは何ですか?


197

たびに私は、命令は常に2つのセクションにそれを組み込むことを教え、IIS7とASP.NET用のハンドラやモジュールを追加する必要がありますsystem.websystem.webserver

<system.web>
    <httpHandlers>
    </httpHandlers>
    <httpModules>
    </httpModules>
</system.web>

この:

<system.webServer>
    <modules>
    </modules>
    <handlers>
    </handlers>
</system.webServer>

これら2つのセクションの違いは何ですか?

また、system.webセクションに追加しないと、Visual Studio 2008デバッガーも正しく動作しません。


2
これに関するより良い現在のリファレンスは次のとおりです。msdn.microsoft.com
Shannon

回答:


157

system.webセクションはIIS 6.0の構成用であり、system.webserverバージョンはIIS 7.0の構成に使用されます。IIS 7.0には、新しいASP.NETパイプラインといくつかの構成の違いが含まれているため、追加の構成セクションがあります。

しかしながら...

IIS 7.0を統合モードでのみ実行している場合は、両方のセクションにハンドラーを追加する必要はありません。それをsystem.webに追加することも、間違いがない限り、クラシックモードで動作するIIS 7.0のフォールバックです。私はこれについて広範なテストを行っていません。

詳細については、http://msdn.microsoft.com/en-us/library/bb763179.aspxを参照してください


4
<httpRuntime>のようなsystem.webに配置されている属性が、IIS 7統合モードでまだ違いがある場合はどうでしょうか?
スクラソン'07

38
system.webセクションはsystem.webserverセクションに置き換えられず、拡張されただけです。
クリス

IIS 8.5ではhttpCookies、system.webServer でこの設定を使用できないことがわかりましたが、system.webを作成してそこに配置すると機能します。
エボルボブ2017年

44

前者はクラシックモード用です。

後者は統合パイプラインモード用です(IIS7 +で使用可能)。


私の経験からすると、これは長さ、明快さ、現実においてより良い答えです。かつてのクラシックモードに加えて、表現および7 IISされていない他のサーバーのIISを追加
ベンGripka
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.