- - PR -
大きいサイズのダウンロードでエラー
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-01 11:04
VB.NETでダウンロードの処理を作成中なのですが、以下のようなエラーが出てしまいます。
---------------------------------- HTTP/1.1 500 Internal Server Error Server: Microsoft-IIS/5.1 Date: Tue, 01 Feb 2005 01:31:17 GMT X-Powered-By: ASP.NET Connection: close Content-Type: text/html ---------------------------------- 数百KBのファイルでしたら、ダウンロードできているのですが、MB単位になるとエラーが発生してしまいます。 環境は IIS5.1 WindowsXP SP2 IE6.0 SP2 です。 ソースは以下の通りです。 Response.Clear() Response.ContentType = "APPLICATION/OCTET-STREAM" Response.ContentEncoding = System.Text.Encoding.GetEncoding("Shift-Jis") Response.AppendHeader("Content-Disposition", "Attachment; filename=sample.bmp") oDLfile = New FileInfo("c:\\sample.bmp") Response.WriteFile(oDLfile.FullName) Response.Flush() エラーの原因がさぱり分からず行き詰まっています。 ヒントとなるものでも構いませんので、よろしくお願いします。 | ||||
|
投稿日時: 2005-02-08 18:23
自己解決
Response.TransmitFileを使用することで、メモリ上ではなく直接クライアントに転送することにより、実現することができました。 | ||||
|
投稿日時: 2005-03-07 10:55
eぜんちゃんさん、はじめまして。
私も、同様の現象で悩んでいます。 MSDNで調べたのですけど、 「Response.TransmitFile」が見当たりません。 詳しい方法を教えてください。 | ||||
|
投稿日時: 2005-03-07 21:24
HttpResponseクラスのTransmitFileメソッド
これって.NET2.0で追加されるメソッドではないですか? | ||||
|
投稿日時: 2005-03-08 11:53
ども、ぼのぼのです。
私の環境、VS.NET 2003+.NET Framework 1.1 SP1なんですが、 TransmitFileメソッド使えました。 使い方はWriteFileとほぼ同じ?でしょうか。 shirenさんの仰る通りMSDNには載っていなかったのですが、 VB.NETのコードエディタの入力補助?(Response.と書くとプロパティ・メソッドの一覧が出てくる) の中には、ちゃんといました。 #ちなみに、私はこのメソッドの存在を知りませんでした… | ||||
|
投稿日時: 2005-03-08 19:27
遅くなりました。
ぼのぼのさんの仰るとおりで、私の環境も VS.NET 2003+.NET Framework 1.1 SP1でTransmitFileメソッド使用しております。 使い方はResponse.WriteFileと同様で最後のResponse.Flush()は必要ないです。 確かにMSDNに載ってないので、TransmitFileについては、使用しても良いものなのかどうか不明な点が多いです。 Macでは動かないし・・・ TransmitFileの使用方法など詳細についてはVC++.NETやソケット関連の書籍を見ると載っているようです。 | ||||
|
投稿日時: 2005-03-08 20:28
あ、ほんとですね。
VS.NET 2003でインテリセンスに出てくるし.NET 1.1 SP1で使えるんですね。 ただ、MSDNのベータ版で「HttpResponse.TransmitFile Method」のところを見ると 「Note: This Method is new in the .NET Framework version 2.0.」 と書いてあります。埋まってるけど正式ではない、みたいな扱いなんでしょかね。 |
1