.NET, ASHX, "Server cannot append header after HTTP headers have been sent" after sending PDF Streem

Posted by Inturbidus on Stack Overflow See other posts from Stack Overflow or by Inturbidus
Published on 2011-01-01T14:45:30Z Indexed on 2011/01/01 14:54 UTC
Read the original article Hit count: 212

Filed under:
|
|

I visit my ASHX file, and it outputs a PDF perfectly. If I visit the very same ASHX with a different query string (I append DateTime.Now.Ticks to the end each visit), and I get this error:

Server cannot append hader after HTTP headers have been sent.

My code is below:

        copy.CloseStream = false;
        document.Close();

        var r = context.Response;
        r.ExpiresAbsolute = DateTime.Now;
        r.BufferOutput = true;
        r.ContentType = "application/pdf";
        r.AppendHeader("Content-Type", r.ContentType);
        r.AppendHeader("Content-disposition", "inline; filename=" + context.Server.UrlEncode(formType.File_Name));

        r.BinaryWrite(copyStream.ToArray());
        r.StatusCode = 200;
        r.End();
        originalReader.Close();
        copy.CloseStream = true;
        copy.Close();

There is no other place in this code that headers are sent. You are seeing the entire interaction with the Response object.

I've tried to use r.Flush(); and r.End(); I've also tried not sending them if they are already there, but this causes other issues.

© Stack Overflow or respective owner

Related posts about c#

Related posts about .NET