web-dev-qa-db-ja.com

.aspxと.ashxの主な違い

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

107
Arrabi

Pageは特別な場合のハンドラです。

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

ASP.NETページハンドラー(*.aspx)は、すべてのASP.NETページのデフォルトのHTTPハンドラーです。

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

MSDN says

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

以下の画像はこれを示しています。 request pipe line

2番目の質問について:

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

そうは思わないでください(しかし、少なくとも、少なくともそれは確かです)。

95
Alex

.aspxは完全なライフサイクル(InitLoadPreRender)を使用し、ボタンのクリックなどに応答できます。
.ashxにはProcessRequestメソッドが1つだけあります。

78
Hans Kesting

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

25
Babak Naffas

特にexpressJSを使用して、nodeJでプログラムを作成したことがあるユーザー向け。 .ashxは、next関数を呼び出すミドルウェアと考えています。 .aspxcontrollerであり、res.redirectres.sendなどの要求に実際に応答します。

0
flash