Question

I am trying to serve a csv file from a wcf service, as a string response.

It looks like this:

HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=ImportErrors.csv");
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.Write(myCsvContent);

The response StatusCode is set to (int)HttpStatusCode.OK (200)

It works, but I am only getting 88 bytes of my csv and the rest is cut off (not shown).

Any suggestions on where to look? I don't see any custom entries in my web.config that are setting a limit.

Was it helpful?

Solution

Make sure to call

HttpContext.Current.Response.Flush();
HttpContext.ApplicationInstance.CompleteRequest();

This will close the stream and flush the rest of the content.

EDIT: Check out this link. It would seem that my original information was a bit out of date... I've been in "MVC Land" for so long I've forgotten this pattern!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top