ASP.NET で HTTP ハンドラーを作成する

以前に投稿した静的コンテンツへの要求を動的に処理するという記事に関連して、
今回は HTTP ハンドラーを作成する方法を紹介します。

ASP.NET で HTTP 要求に対して応答を返す方法としては、
IHttpHandler インターフェイスを実装したクラスを作成する方法があり、
.aspx や MVC を使うよりも原始的です (最も原始的な方法は Global.asax)。
ProcessRequest メソッドの引数で HttpContext オブジェクトが渡されます。
HTTP 要求の情報はここからすべて取得でき、応答もこのオブジェクトに格納します。
これにより、任意の処理を実装できます。

IHttpHandler インターフェイスを利用する方法として、
.ashx ファイルを作成する方法もありますが、これでは拡張子が .ashx に固定されてしまいます。
任意の拡張子を利用するには、通常のクラスとして IHttpHandler インターフェイスを実装し、
Web.config で拡張子や HTTP メソッド (GET など) とのマッピングを指定します。

以下では、.txt へのアクセスに対する HTTP ハンドラーを実装します。

サンプルの全体は HttpHandlerWeb (GitHub) にあります。
なお、このサンプルでは Web アプリケーション プロジェクトではなく、Web サイトを利用しています。
そのため、App_Code フォルダーの下にクラスを配置しています。

これで、.txt へのアクセスを受け付けられるようになりました。

file1.txt

 

以前のバージョン (IIS 6.0 以前?) では、Web.config の system.web/httpHandlers セクションで設定していました。

 

前回:静的コンテンツへの要求を動的に処理する

作成したサンプル
HttpHandlerWeb (GitHub)

バージョン情報
.NET Framework 4.5

参照
チュートリアル : 同期 HTTP ハンドラーの作成 (MSDN)

広告
カテゴリー: .NET Framework. タグ: . 1 Comment »

コメント / トラックバック1件 to “ASP.NET で HTTP ハンドラーを作成する”

  1. 静的コンテンツへの要求を動的に処理する | Do Design Space Says:

    […] 前回:静的コンテンツにも SSL を強制する 次回:ASP.NET で HTTP ハンドラーを作成する […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

w

%s と連携中

%d人のブロガーが「いいね」をつけました。