.aspxと.ashxの主な違い


115

.aspxページと.ashxページの違いは何ですか?コードから呼び出されてレスポンスで返されたリクエストを処理する必要がある場合は、ashxを使用していますが、より技術的な回答をお願いします。

回答:


101

Page 特別なケースハンドラです。

汎用Webハンドラー(*.ashx、拡張ベースのプロセッサー)は、UIがなく、@WebHandlerディレクティブを含むすべてのWebハンドラーのデフォルトのHTTPハンドラーです。

ASP.NETページハンドラー(*.aspx)は、すべてのASP.NETページの既定のHTTPハンドラーです。

組み込みHTTPハンドラーの中には、Webサービスハンドラー(*.asmx)とトレースハンドラー(trace.axd)もあります。

MSDN は言う

ASP.NET HTTPハンドラーは、ASP.NET Webアプリケーションに対して行われた要求に応答して実行されるプロセス(多くの場合、「エンドポイント」と呼ばれます)です。最も一般的なハンドラーは、.aspxファイルを処理するASP.NETページハンドラーです。ユーザーが.aspxファイルを要求すると、要求はページハンドラーを通じてページによって処理されます。

以下の画像はこれを示しています: リクエストパイプライン

2番目の質問について:

ashxはaspxよりも多くの接続を処理しますか?

そうは思わないでください(少なくとも、少なくともそれ以上)。


ありがとうございましたが、ashxハンドラーについては触れませんでした。そのリクエストパイプラインについてはどうですか。
アラビ

1
@Arrabi HttpHandlerは、セクションの前に実行されるリクエストのPageセクションです。
Alex

82

.aspx完全なライフサイクルを(使用してInitLoadPreRender)やボタンのクリックなどに応答することができ
Anが.ashx1つだけ持っているProcessRequest方法を。


この文脈で「再利用可能」とはどういう意味ですか?
redcalx 2013

11
Webサーバーが新しいリクエストごとに新しいオブジェクトインスタンスを作成する義務がないこと。IsReusableがハンドラに= trueの場合、サーバーは、ハンドラは、次のリクエストを処理するオブジェクトを既存の再利用可能
ケツァルコアトル

2
したがって、ハンドラのインスタンスを作成し、それを再利用するためにメモリに保持します。それは決してGCに返さない。
uzay95 2017年

26

.aspxはレンダリングされたページです。ビューが必要な場合は、.aspxページを使用してください。必要なのはバックエンド機能だけですが、同じビューにとどまる場合は、.ashxページを使用します。


私が知っていること、私は多分数字でもっと技術的な答えが欲しかったのですが、ashxはaspxよりも多くの接続を処理しますか?
アラビ

1

以前にnodeJでプログラミングしたことがある人、特にexpressJSを使用している人向け。私が考える.ashxようミドルウェア呼び出すnext機能を。while .aspxは、やその他の要求に実際に応答するコントローラーになります。res.redirectres.send

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.