「マイクロソフト系技術情報 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を使用する。)