8

アプリケーションの「キャッシュ」フォルダーにいくつかの aspx ファイルがあり、そのフォルダー内のそれらのファイルに対して HttpModules を実行したくありません。サブディレクトリに web.config を配置しようとしましたが、HttpModules がサブディレクトリではなくルート web.config を取得することがわかりました。 参照 1参照2 。そこで、ここここの提案に従って、このディレクトリをサブアプリケーションとして使用することにしました。

したがって、アプリケーションを構成し、「アプリケーションを追加」して、このディレクトリにマップします。このディレクトリは、すでにこのアプリケーション内にあり、ブームになり、失敗します。静的 html ファイルでは機能しますが、aspx ファイルは使用できません。

私の質問は、IIS7 でサブアプリケーションを構成して、サブアプリケーションが独自の web.config を持つことができ、そこでルートアプリケーションの HTTPModules を無効にできるようにする方法です。

編集:実際、メイン アプリケーション内にサブアプリケーションを作成しようとしましたが、機能しませんでした。IIS7 でサブアプリケーションを構成する方法に関する記事を教えてもらえますか?

Edit2: エラー画像を追加します。では、子アプリ プールをどのように構成すればよいでしょうか。子アプリは、親と同じアプリ プールで実行されます

Edit3: 申し訳ありませんが、子は別のアプリ プールで実行されていました。一般的なアプリが機能しました(モジュールなし)。モジュールを試した後、答えをマークしています。助けてくれてありがとう。親アプリの web.config に特定のものがあり、これから探し出します。

代替テキスト

編集:実際には、以下に示す両方の回答が正しいです。IIS7 統合モードを使用している場合、モジュールは system.webServer にある必要があり、IIS7 - クラシック モードの場合、モジュール (およびハンドラー?) は system.web にある必要があります。

4

2 に答える 2

9

JKG には IIS6 の正しい答えがありますが、IIS7 では構文が少し異なります。

<system.webServer>
  <modules>
    <remove name="MyModule"/>
  </modules>
</system.webServer>
于 2010-01-29T19:53:11.400 に答える
5

web.config は、同じ Web アプリケーション内にある場合は常に親から継承されますが、次のように全体をクリアしたり、項目を削除したりできます。

子 web.config から (すべてクリアまたは項目を削除)

<httpModules>
  <clear />
  <remove name="MyModule"/>
</httpModules>  

location タグを使用して親構成から...

<location inheritInChildApplications="false">
  <system.web>
    <!-- ... -->
  </system.web>
</location>

http://www.jaylee.org/post/2008/03/Prevent-ASPNET-webconfig-inheritance-and-inheritInChildApplications-attribute.aspx

于 2010-01-29T17:38:30.233 に答える