「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
以下のインターフェイスを実装(DLLなので以下の関数をエクスポート)
# | 通知 | 説明 |
1 | SF_NOTIFY_READ_RAW_DATA | クライアントが要求を送信した際。 |
2 | SF_NOTIFY_PREPROC_HEADERS | 各要求に対して発生。ヘッダーの前処理を完了後に発生。 |
3 | SF_NOTIFY_URL_MAP | 物理パスに変換しているときに発生。ヘッダーの前処理を完了後、1回以上発生。 |
4 | SF_NOTIFY_AUTHENTICATION | 匿名リクエスト、authorization headerを含むリクエストの旅に発生。直後、IISはクライアントの認証を試みる。 |
5 | SF_NOTIFY_AUTH_COMPLETE | 認証完了後に発生。HTTPメソッド、URL、バージョン、ヘッダの表示と変更が可能。 |
6 | SF_NOTIFY_READ_RAW_DATA ※ | チャンクなどで以降のクライアント・データを受信した際。 |
7 | SF_NOTIFY_SEND_RESPONSE | 要求が処理され、ヘッダがクライアントに返送される前に発生。 |
8 | SF_NOTIFY_SEND_RAW_DATA | クライアントにデータを返信した際。 |
9 | SF_NOTIFY_END_OF_REQUEST | 各要求の終わりに発生。 |
10 | SF_NOTIFY_LOG | IISがログに要求を書き込む直前に発生。 |
11 | SF_NOTIFY_END_OF_NET_SESSION | TCP/IP接続が閉じられると発生 |
126/5000 HTTP要求が完了し、
# | 戻り値 | 説明 |
1 | SF_STATUS_REQ_FINISHED | フィルタがHTTP要求を処理しました。 サーバーはセッションを切断する必要があります。 |
2 | SF_STATUS_REQ_FINISHED_KEEP_CONN | #1と同じだが、キープアライブの際は切断しない。 |
3 | SF_STATUS_REQ_NEXT_NOTIFICATION | 通知チェーンの次のフィルタを呼び出す。 |
4 | SF_STATUS_REQ_HANDLED_NOTIFICATION | このフィルタは通知の処理を完了(次のフィルタを呼び出さない) |
5 | SF_STATUS_REQ_ERROR | エラー発生。GetLastError?でエラーをクライアントに通知。 |
6 | SF_STATUS_REQ_READ_NEXT | Raw読み取り通知の場合にのみ有効。 |
Web.configに設定を行う。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" /> </handlers> <httpPlatform processPath="startup.bat" arguments=""> <environmentVariables> <environmentVariable name="PORT" value="%HTTP_PLATFORM_PORT%" /> </environmentVariables> </httpPlatform> </system.webServer> </configuration>
ASP.NETをホストするワーカープロセスであるw3wp.exeをprocessPathに指定できない模様。
(ASP.NETの中ではHttpPlatformHandler?を使用できないので、潔くHttpHandlerを使用する。)