4

これはおそらく非常に単純ですが、本当に混乱しています。IHttpHandler を実装するときは、ハンドラーを作成し、web.config に次のように登録します。

IIS6 Portion:
<httpHandlers>
    <add verb="*" path="*.randomextension" type="MyProgramNameSpace.MyHandler" />
</httpHandlers>

IIS7 Portion:
<handlers>
    <add name="mine" verb="*" path="*. randomextension" type ="MyProgramNameSpace.MyHandler" />
</handlers>

それは非常にうまく機能しているようで、さまざまなハンドラーとオプションを使用できるようになっています。直接パイプラインにアクセスして Page クラスなどを飛ばしてみましょう。ただし、ashxまたはaxdについて何かを使用する必要があると書かれているドキュメントに頻繁に出くわします。

これは何ですか?これはハンドラーの作成とどのように関係していますか?

これはおそらく非常に簡単ですが、何らかの理由で、この ashx または axd ハンドラーを使用するときに完全に混乱します。

4

3 に答える 3

6

.asxh ハンドラーは、既存/定義済みのジェネリック ハンドラー マッピングにすぎません。.aspx ハンドラーとは異なり、Page からの派生に制限されず、完全な ASP.NET ページ ハンドラー イベント パイプラインを取得することはできません。通常、.ashx ファイルを使用して、非標準コンテンツを入力として受け取ったり、出力として返したりする非ページ要求を処理します。

.ashx ハンドラーやカスタム IHttpHandler との違いは、実際にはそれほど大きくありません。.ashx ファイルには多くの構成が事前定義されていますが、その拡張子に縛られています。完全なカスタム IHttpHandler を使用すると、完全な自由が得られますが、最初から構成する必要があります。

于 2009-08-29T01:33:45.683 に答える
3

本当に違いはありません。.ashx ファイルは、あなたが行っているのと同じように IHttpHandler を実装します。.ashx のみが事前登録されたハンドラーであるため、自分で web.config に追加する必要はありません。既に行われています。

于 2009-08-29T01:38:24.273 に答える
2

ファイルの種類ごとに拡張子を使用することを決定している場合は、ハンドラーが適切です。

一方、特定の拡張子なしでデータを返そうとしている場合は、ashx/ahd 拡張子が適しています。

たとえば、データベースに画像のコレクションが保存されている場合、ハード ドライブではなくデータベースから画像を取得する .JPG ハンドラーを登録できます。また、任意の画像タイプを返すことができる ASHX を作成することもできます。

拡張機能を登録すると、エンド ユーザーにとっては URL がより「普通」に見えるようになる可能性がありますが、ashx はより一般的 (マニアックでさえあります) に見えます。

于 2009-08-29T01:37:02.263 に答える