ASHX ファイル形式とは?
.ashx 拡張子は、Microsoft によって開発されたサーバー側コンポーネントである ASP.NET 汎用 HTTP ハンドラーを識別するものです。標準的な ASP.NET ページとは異なり、.ashx ハンドラーは HTTP リクエストを直接処理し、通常の .aspx ページのようなフル ページ レンダリングのオーバーヘッドなしに、レスポンス(バイナリ データ、JSON、画像、またはファイル)をストリーミングします。
本物の .ashx ソース ファイルはプレーン テキストです。これは <%@ WebHandler Language="C#" Class="MyHandler" %> のようなディレクティブ行で始まり、その後に IHttpHandler インターフェイスを実装するクラスが続きます。内部のコードは C# または VB.NET で記述されます。ハンドラーは単一のタスク専用に構築されるため、コード量は比較的少ないのが一般的です。
Web サイトからファイルをダウンロードしようとしたときに、予期せず .ashx ファイルが表示されることがあります。これは、ファイル(画像、PDF ドキュメント、またはその他のリソース)を提供するハンドラーが正しい Content-Disposition ヘッダーを設定していない場合に発生し、ブラウザが本来の拡張子ではなく .ashx サフィックスでレスポンスを保存してしまいます。
このようなファイルを復元するには、簡単なトリックを使用できます。.ashx を正しい拡張子(たとえば、PDF ドキュメントの場合は .pdf、画像の場合は .jpg)に変更して名前を書き換え、その形式をサポートするアプリケーションで開いてみてください。他のファイル タイプでも同様です。拡張子を適切なものに変更し、その形式をサポートするプログラムでファイルを開くだけです。
セキュリティと安全性
リスク: LOW.ashx 拡張子自体は安全性について何も示していません。URL 内では単なる Web サイトのエンドポイントです。サイトは通常通り扱ってください(ログイン ページでのフィッシングに注意)。.ashx として届いたダウンロード ファイルは、通常、名前が間違っているだけの本物のファイル(PDF、画像)であり、名前を変更して開いても安全です。信頼できないソースからの予期しない .ashx ダウンロードにのみ注意し、開く前にテキストとして、または実際の形式で検査してください。また、それらが起動しようとするものは決して実行しないでください。
形式の詳細
概要ASHX ファイルを開くプログラム
技術的詳細
詳細仕様| 開発元 | Microsoft |
| プラットフォーム | ASP.NET (.NET Framework。初期の ASP.NET Core 互換モードでもサポート) |
| ファイルの内容 | プレーン テキスト。`<%@ WebHandler %>` ディレクティブで始まり、その後に C# または VB.NET のクラス本文が続く |
| 実装インターフェイス | `IHttpHandler`(同期)または `IHttpAsyncHandler`(非同期操作) |
| ディレクティブ構文 | `<%@ WebHandler Language="C#" Class="ClassName" %>` |
| サポート言語 | C# および VB.NET |
| デフォルト MIME タイプ | `text/html`。ハンドラーは出力を書き込む前に `context.Response.ContentType` を設定することでこれを上書きする |
| URL アクセス パターン | URL エンドポイントとして直接呼び出される(例:`download.ashx?id=1`)。レンダリングされたブラウザ ページではない |
| サーバー登録 | `web.config` または IIS ハンドラー マッピングでマップされる。ASP.NET ランタイムが一致するリクエストをハンドラー クラスにルーティングする |
| バイナリ シグネチャ | なし - マジック バイトのないプレーン テキスト ファイル。ソース ファイルは開始ディレクティブ行によってのみ識別可能 |
| セッション状態 | デフォルトでは無効。ハンドラー クラスで `IRequiresSessionState` を実装することで有効になる |
| 一般的な用途 | ファイル ダウンロード、動的な画像生成、AJAX/JSON エンドポイント、バイナリまたはテキスト データのストリーミング |
| 現代の代替手段 | .NET 5 以降では、ASP.NET Core ミドルウェア、Minimal API、および `IEndpointRouteBuilder` 拡張機能が `.ashx` に取って代わる |
| ダウンロード時の挙動 | ハンドラーが `Content-Disposition` を省略すると、ブラウザはファイル サフィックスとして `.ashx` を保存する。実際の拡張子(`.pdf`、`.jpg` など)に名前を変更するとファイルを復元できる |
| リリース日 | 2002 (ASP.NET 1.0, .NET Framework) |
| 仕様書 | learn.microsoft.com |
ASHX の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。ASHX ファイルについて最初の質問をしてみましょう。