2008-09-09 9 views
4

を経由してページのサイズを決定ここにあなたのための簡単なものです。はHttpModuleを

HttpContext.Current.Response.OutputStream.LengthNotSupportedExceptionをスローします。

これは簡単な方法は何ですか?

答えて

3

私はストリームリライタを実装するHttpModuleを持っています。これはStreamクラスから派生しています。私は、デフォルトのWriteメソッドをオーバーライドする次のコードを持つストリームクラスで

void app_PreRequestHandlerExecute(object sender, EventArgs e) 
{ 
    HttpResponse response = HttpContext.Current.Response; 
    response.Filter = new MyRewriterStream(response.Filter); 
} 

public override void Write(byte[] buffer, int offset, int count) 
{ 
    string outStr; 
    outStr = UTF8Encoding.UTF8.GetString(buffer, offset, count); 
    //Do useful stuff and write back to the stream 
} 

あなただけで文字列の長さを取ることができ、私のHttpModuleを、私は次のコードを持っています2番目のポイント

+0

意味: response.Filter = new MyRewriterStream(response.OutputStream)?? –

+0

あなたは正しいです...それは単にタイプミスのように見えました。 それはそれでした! –

+0

要求がバイナリファイルの場合は、byte []バッファを文字列に変換することに注意してください。 – David

関連する問題