1

アプリケーション Pelotonics 内で問題が発生しています。ユーザーがファイルをダウンロードすると、そのファイルのダウンロードが完了するまで、システムはすべての着信要求をブロックしているように見えます。ダウンロード ダイアログ ボックス (ブラウザからの標準) を開き、ユーザーにファイルのダウンロードを開始させ、ファイルのダウンロード中にユーザーがアプリケーション全体を続行できるようにするための適切な手法は何ですか。

サーバーからファイルを取得する方法は、クエリ文字列を介して値を渡す別の ASPX ページを用意し、サーバーからファイルのストリームを取得してから、「content-disposition」ヘッダーを追加することです。 Response に渡してから、ファイルのストリームをループして、2KB のチャンクを response.outputstream に読み込みます。それが完了したら、Response.End を実行します。

この問題に関する簡単なスクリーンキャストについては、これをご覧ください。

http://www.screencast.com/users/PeloCast/folders/Jing/media/8bb4b1dd-ac66-4f84-a1a3-7fc64cd650c0

ちなみに、私たちは ASP.NET と C# を使用しています...

ありがとう!!!ダニエル

4

1 に答える 1

0

ASP.NET では、セッションごとに 1 つのページを同時に実行できると思いますが、それ以外の方法でこれを構成する方法を知りません。

これはあまり良い回避策ではありませんが、ASP.NET_SESSIONID 値を Application_BeginRequest (global.asax 内) の要求 Cookie に書き直すと役立つ場合があります。もちろん、別の方法で認証する必要があります。しかし、私はこれを試していません。

もう 1 つの方法は、ダウンロード プロセス用に別のスレッドを起動することですが、ワーカー スレッドがそのリソースを閉じずにこれを行う方法を見つける必要があります。

質問してもいいですか、HttpResponse.TransmitFile を使用しない理由はありますか?

于 2009-08-03T06:05:54.870 に答える