ASP.NET - MVC - The remote host closed the connection. The error code is 0x800703E3.

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
Tenho uma aplicação que retorna uma ActionResult<o:p></o:p>
Essa ActionResult vai me retornar um documento PDF em seu corpo que será alimentado por um array de bytes.<o:p></o:p>
Bom, este documento deverá conter no mínimo 20 páginas, onde é feita um requisição no banco de dados para cada página retornando no array de bytes da página.<o:p></o:p>
O que eu preciso:<o:p></o:p>
Para cada vez que a aplicação retornasse uma página já mostraria para o cliente<o:p></o:p>
Estou usando o seguinte código:<o:p></o:p>

//retorna os dados da imagem do documento
foreach (System.Data.DataRow r in tbpagina.Rows)
{
codigolancamentopagina = int.Parse(r["codigolancamento"].ToString());
numerorow = int.Parse(r["numerorow"].ToString());
if (codigolancamentopagina > 0 & numerorow >= rowinicial & numerorow <= rowfinal)
{
mds = null;
mensagemerro = "";
mds = mws.retornadadosdaimagemgl(codigoempresa, codigolancamentopagina, anoexercicio, ref mensagemerro, 0);
System.Data.DataTable tbdadosimagem = mds.Tables[0];

string dadosimagem = tbdadosimagem.Rows[0]["dadosimagem"].ToString();

arraybyte = System.Convert.FromBase64String(dadosimagem);

arImgBytes.Add(arraybyte);

//convert arraylist with image streams to pdf stream
pdfBytes = v.ConvertImageStreamArrayToPDFStream(arImgBytes);

pdf = pdfBytes;
pdfBytes = (Byte[])pdf;

MemoryStream ms = new MemoryStream();
MemoryStream pdfStream = new MemoryStream(pdfBytes);
int read = pdfStream.Read(pdfBytes, 0, pdfBytes.Length);

if (num == 1)
{
HttpContext.Response.Buffer = true;
HttpContext.Response.Clear();

HttpContext.Response.AddHeader("content-disposition", "inline; filename=documentos.pdf");
HttpContext.Response.AddHeader("Content-Length", pdfBytes.Length.ToString());

HttpContext.Response.ContentType = "application/PDF";
HttpContext.Response.OutputStream.Write(pdfBytes, 0, read);
HttpContext.Response.Flush();
}
else
{
HttpContext.Response.OutputStream.Write(pdfBytes, 0, read);
HttpContext.Response.Flush(); // Aqui está acontecendo o erro : The remote host closed the connection. The error code is 0x800703E3.
}
num++;

}
} <o:p></o:p>

Para cada laço do foreach, retornaria uma página para o PDF.<o:p></o:p>
O código acima retorna a primeira página certinho para o cliente, mas quando vai passar a segunda vez dá o erro no HttpContext.Response.Flush() = The remote host closed the connection. The error code is 0x800703E3.;<o:p></o:p>
Alguém já passou por isso.<o:p></o:p>
Agradeço a atenção <o:p></o:p>
Atenciosamente<o:p></o:p>
Fábio Rocha<o:p></o:p>

View the full article
 
Back
Top