系统资源不足,无法完成请求的服务

本文关键字:请求 服务 系统资源 | 更新日期: 2023-09-27 18:33:41

我在Windows Server 2003盒子上托管了一个在IIS 6中的Web应用程序,并且必须处理2个大约7-8mb的大型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()上引发错误,错误为:

系统资源不足,无法完成请求的服务

代码在我的开发环境中有效,但一旦我发布到我们的生产环境,我们就会收到此错误消息。我已经看到此错误已经出现了几次搜索,并且为此使用了File.Move()但是我们不能这样做,因为该文件需要传递给WCF服务方法。

IIS6 中是否有某些内容需要更改以允许在读取文件时在内存中保存 15-20mb? 还是还有其他需要配置的内容?

有什么想法吗?

系统资源不足,无法完成请求的服务

看到这个:

为什么我需要逐段读取文件以缓冲?

似乎您正在读取整个文件,而无需缓冲。

缓冲区 = 新字节[长度];

此致敬意。