長い間、この問題の前に、誰かが中に私のブログにそれを置く、最近に頼まれた、尋ね
Response.WriteFile(フルネーム)を使用してファイルをダウンロードします一般的な
、あまりにも多くのスペースによって引き起こされるスクラッチ、これはにAspnet_wp.exeの原因となります失敗をダウンロードし、ストリームモードを使用してダウンロードすることをお勧めします
長い間、この問題の前に、誰かが、私のブログにそれを置く、最近に頼まれた、尋ねました
ダウンロードファイルは、一般的にResponse.WriteFile(フルネーム)が使用されています
これは、ストリームをダウンロードすることをお勧めします、あまりにも多くのスペースのダウンロードが失敗にAspnet_wp.exeスクラッチの原因となります
asp.net(C#の)
プログラムの一部
IStream = nullをSystem.IO.Stream;// 10Kスクラッチユニットへ:
バイト[]バッファ=新しい新しいバイト[10000];
int型の長さは、
ロングdataToRead;
//ドキュメントのパスの策定
(「文字列のファイルパス= Server.MapPathのを〜 /aaa.rar「);
//ドキュメント名を取得する
文字列のファイル名= System.IO.Path.GetFileName(ファイルパス);
してみてください
{...
//ドキュメントを開い
たIStream =新新System.IO.FileStream(ファイルパス、システム。 IO.FileMode.Open、
System.IO.FileAccess.Read、System.IO.FileShare.Read);
//ドキュメントのサイズを取得:
dataToRead = iStream.Length。
Response.ContentTypeの= "アプリケーション/ X-RAR圧縮"。
Response.AddHeader( "コンテンツの廃棄"、 "添付ファイル;ファイル名=" + HttpUtility.UrlEncode(ファイル名));
一方、(dataToRead> 0)
... {
//保证クライアント连接
IF(Response.IsClientConnected)
... {
長さ= iStream.Read(バッファ、0、10000)。
Response.OutputStream.Write(バッファ、0、長さ)。
Response.Flush();
バッファ=新しいバイト[10000]。
dataToRead = dataToRead -長さ。
}
他に
...
//エンドループ
dataToRead = -1;
}
}
}
キャッチ(例外EX)
... {
//エラー
のResponse.Write( "エラー:" + ex.Message);
}
最後に
... {
IF(= nullをISTREAM! )
... {
//文書を閉じ
iStream.Close();
}
}
参考サイト:
http://www.blueshop.com.tw/board/show.asp?subcde=BRD200706131110357NX&fumcde=
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20080506151701ZMH&fumcde=FUM20041006161839LRJ
オリジナル:ビッグボックス ストリームのダウンロードの過度の使用の問題を解決するために、ファイルをダウンロードするためのASP.NET Webページ