C# – Insufficient system resources exist to complete the requested service

ciis-6

I have a Web Application hosted in IIS 6 on a Windows Server 2003 box and have to handle 2 large PDF files around 7-8mb, these files are read by the website from a network share and the bytes passed to a WCF service for saving elsewhere.

here is the code I use to read the Files:

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();
    }
}

An error is thrown on the stream.Read() and the error is:

Insufficient system resources exist to complete the requested service

This code works in my dev environment but as soon as I post to our production environment we get this error message.
I have seen this error has surfaced a few times searching round and the worfaround for this is to use File.Move() but we can not do this as the file needs to be passed to a WCF service method.

Is there something in IIS6 that needs to be changed to allow holding 15-20mb in memory when reading file? or is there something else that needs to be configured?

Any ideas?

Best Answer

See this:

Why I need to read file piece by piece to buffer?

It seems you are reading the whole file, without buffering..

buffer = new byte[length];

Best regards.

Related Topic