System.Web.IHttpHandler を実装することにより、カスタム http ハンドラーを作成できます。ProcessRequest(HttpContext context) メソッドは、データベースからファイルを取得するコードを記述する場所です。BITS は範囲要求で動作するため、context.Request.Headers["Range"] の値を解析して、要求された開始バイトと終了バイトを取得する必要があります。ProcessRequest では、SqlCommand.ExecuteReader(CommandBehavior.SequentialAccess) メソッドを使用してデータベースからバイナリを読み取り、結果のバイナリを context.Response.OutputStream に設定できます。最後に context.Response.Flush() を呼び出すことを忘れないでください。
カスタム HttpHandler は、特定のファイル拡張子 (「.file」など) を提供します。これは、IIS で行う必要があることです。
両方の IIS バージョン
- web.config のセクションに追加します。
IIS6.0
Web サイトの MIME タイプとして .file (application/x-zip-compressed) 拡張子を追加します。
アプリケーション拡張機能を追加 (Web サイトのプロパティ 仮想ディレクトリ 構成 マッピング)
拡張子: .file 実行可能パス: %windir%\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll %windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll
IIS7.0
- web.config のセクションに追加します。
web.config のセクションに追加します。
<mimeMap fileExtension=".file" mimeType="application/x-zip-compressed" />
始めるにはこれで十分だと思います。