1

httphandler を使用して、ブラウザーの URL を Web サイト内のファイルに再マップします。これは正常に機能しますが、新しいディレクトリの下に作成したファイルにアクセスできません。URL は次のようになります。

http://mobile.mysite.com/monitoring/help/help.aspx

それでも、404 エラーで返される情報は、次のファイルが見つからないことを示しています。

D:\Sites\Website\monitoring\help\help.aspx

しかし、ファイルは実際には次の場所にあります。

D:\Sites\Website\mobile\monitoring\help\help.aspx

私の http ハンドラーは通常、「モバイル」サブドメインを認識します。実際、実際のファイルを省略してディレクトリのみを使用すると、ハンドラーが呼び出されます。コードにブレークポイントを配置しても、VS が呼び出されることはありません。IIS が存在しないディレクトリの下の help.aspx にアクセスしているのはなぜですか? httphandler が呼び出されないのはなぜですか。前述したように、httphandler は事実上他のすべてのファイルに対して機能します。他のドメインにある aspx ファイルを呼び出すことができます。

これは、私のハンドラーが web.config ファイルでどのように見えるかです:

<add name="FileServerHandler-Files" path="*.*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />

IIS7 で ASP.NET 4.0 を実行する

サブドメイン「mobile」は、実際にはメイン サイトと同じ IP アドレスにマッピングされています。これは何か関係がありますか?存在する場合、ハンドラーがモバイル ドメインのフォルダーにアクセスできるのに aspx ファイルにアクセスできない理由が説明されていません。

4

1 に答える 1

0

ハンドラーがディレクトリを処理するためのエントリが web.config にありましたが、リスト内でそれを上に移動しようとしました。これはうまくいきました。web.config は長い間変更されていないため、なぜ機能しなくなったのかは謎です。エントリは次のようになります。

    <add name="FileServerHandler-Dir" path="*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
    <add name="FileServerHandler-Files" path="*.*" verb="*" type="FileServerHandler" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" responseBufferLimit="4194304" />
于 2013-04-17T10:48:54.763 に答える