none
ASP.net2.0で処理中にレスポンスを開始する方法 RRS feed

  • 質問

  •  

    ASP.netでは全ての処理が終了してレスポンス内容が確定してからレスポンス処理が始まります。

    そこで、例えば100回のループ処理があったとして、1回目の処理中から徐々にレスポンスをしていって、100回目の処理完了でレスポンスも完了、といった処理はさせることが可能なのでしょうか?

    よろしくお願いいたします。

     

    2006年7月18日 12:28

回答

  • biacさん、ご回答ありがとうございました。

    Flushメソッドで部分送信させることができることを確認いたしました。

    ありがとうございました!

     

    2006年7月21日 5:45

すべての返信

  •  Kozy さんからの引用
    ASP.netでは全ての処理が終了してレスポンス内容が確定してからレスポンス処理が始まります。

    そのようなバッファリングをさせないことも可能ですが、 お勧めはできません。 ( HttpResponse.BufferOutput プロパティ )

     Kozy さんからの引用
    そこで、例えば100回のループ処理があったとして、1回目の処理中から徐々にレスポンスをしていって、100回目の処理完了でレスポンスも完了、といった処理はさせることが可能なのでしょうか?

    HttpResponse.Flush メソッドを呼び出すと、 そこまでにバッファリングされた内容を送信できます。

    KB812406 に、 大きなファイルを約 10KB ごとに小分けにして送信するサンプルが載っています。 

    ただし、  KB911274 によれば、 ASP.NET 2.0 にはアンマネージドリソースが開放されないという問題があるそうです。 ( パッチ有り )

    2006年7月19日 1:36
  • biacさん、ご回答ありがとうございました。

    Flushメソッドで部分送信させることができることを確認いたしました。

    ありがとうございました!

     

    2006年7月21日 5:45