我有一个托管在Windows Server 2003框的IIS 6中的Web应用程序,必须处理大约7-8mb的2个大型PDF文件,这些文件由网站从网络共享中读取,并将字节传递给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()
上抛出一个错误,错误是:
系统资源不足,无法完成所请求的服务
这段代码可以在我的dev环境中工作,但是一旦我发布到我们的生产环境,我们就会收到这个错误消息。我已经看到这个错误已经出现过几次了,搜索的结果是使用File.Move()
,但是我们不能这样做,因为文件需要传递给WCF服务方法。
在读取文件时,IIS6中是否有需要更改以允许在内存中保存15-20mb的内容?或者还有什么需要配置的东西?
有什么想法吗?
发布于 2012-05-09 02:02:00
https://stackoverflow.com/questions/10513722
复制