2011-01-24 11 views
1

私は、ファイルを自動生成するためのカスタムHTTPハンドラを作成します。IISとweb.configファイルを使用して現在の要求されたファイルの圧縮設定と他のHTTPヘッダーを制御する必要があるため、IIS7に通常の静的ファイルのようなIIS7とASP.NET 4.0のHTTPハンドラから静的ファイルハンドラを呼び出す方法は?

私は知っています。 ASP.netには[StaticFileHandler] [1]という内部クラスがあります。しかし、私はそれにアクセスすることはできません。あるいは、このように働く他の方法があります。 [1]:http://msdn.microsoft.com/en-us/library/ms404287.aspx

答えて

4

StaticFileHandlerを複製することはかなり簡単なはず

  1. StaticFileHandler
  2. OpenメソッドProcessRequestInternal()
  3. オープンのためのダウンロードリフレクター
  4. オープンSystem.Webの
  5. 検索メソッドSendFile()

コピーし、必要ビット、基本的には、この方法に沸く:

context.Response.TransmitFile(physicalPath, offset, length); 
0

This blog postはStaticFileHandlerが使用されたときに説明します

あなたは(例えば任意のヘッダを変更していない場合応答ストリームに何かを書き込んでおらず、応答ストリームにフィルタ(圧縮など)がなく、の処理中です。 IIS6でを実行すると、その要求は処理のためにIISに戻されます。

私がこれまでテストした限り、これはIIS7でも当てはまります。私はどういうことかはっきりしていませんが、自分のハンドラで特定のリクエストを処理しないと、IISに渡されるはずです。誰でもそれを確認できますか?

少なくとも、上記のヒントは私の静的なファイルのために働いた。

関連する問題