C# - Сервер не может установить тип содержимого после отправки заголовков HTTP - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь загрузить отчет SSRS в формате Excel из моего приложения MVC.

    Response.Clear();
    Response.Buffer = true;
    Response.Charset = "";
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.ContentType = "application/vnd.ms-excel";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + reportName + "." + extension);
    Response.BinaryWrite(result);
    Response.Flush();
    Response.End();

Но я получаю эту ошибку как -

System.Web.HttpException (0x80004005): Server cannot set content type after HTTP headers have been sent.

Я пытался изменить Response.Buffer до BufferOutput , но все равно появляется та же ошибка. Что мне здесь не хватает?

1 Ответ

0 голосов
/ 06 февраля 2020

В приведенном ниже коде я попытался загрузить файл Excel как -

        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "";
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader($"content-disposition", "attachment;filename=" + "{reportFileName}" + ".xlsx");
        using (System.IO.MemoryStream MyMemoryStream = new MemoryStream())
        {
            MyMemoryStream.Write(result, 0 , result.Length);
            MyMemoryStream.WriteTo(Response.OutputStream);
            Response.Flush();
            Response.End();

            return File(MyMemoryStream.ToArray(), "application/octet-stream");
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...