Windows Server 2003 ボックスの IIS 6 でホストされている Web アプリケーションがあり、7 ~ 8 MB 前後の 2 つの大きな PDF ファイルを処理する必要があります。これらのファイルは Web サイトによってネットワーク共有から読み取られ、バイトは別の場所に保存するために WCF サービスに渡されます。 .
ファイルを読み取るために使用するコードは次のとおりです。
public static byte[] ReadFile(string filePath)
{
int count;
int sum = 0;
byte[] buffer;
FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
try
{
int length = (int)stream.Length;
buffer = new byte[length];
while ((count = stream.Read(buffer, sum, length - sum)) > 0)
sum += count;
return buffer;
}
catch (Exception)
{
throw;
}
finally
{
stream.Close();
stream.Dispose();
}
}
でエラーがスローされstream.Read()
ます。エラーは次のとおりです。
要求されたサービスを完了するためのシステム リソースが不足しています
このコードは私の開発環境では機能しますが、実稼働環境に投稿するとすぐにこのエラー メッセージが表示されます。このエラーは、検索ラウンドで数回発生し、これに対する回避策を使用するFile.Move()
ことを確認しましたが、ファイルを WCF サービス メソッドに渡す必要があるため、これを行うことはできません。
ファイルの読み取り時にメモリに 15 ~ 20 MB を保持できるようにするために、IIS6 に変更が必要なものはありますか? または、他に設定する必要があるものはありますか?
何か案は?