Estoy utilizando la Respuesta para que mi aplicación abra un documento de Word para el usuario. Si el usuario elige guardar el archivo, lo guarda y el archivo se ve como debería cuando lo abres. Si el usuario elige abrir el archivo de inmediato, recibe un error que dice que IE no pudo abrir el archivo. Si eligen 'Reintentar', MS Word muestra un error que dice que no puede encontrar el archivo. A continuación se muestran capturas de pantalla que muestran mi situación. También, aquí está el código que tengo para mostrar el archivo:Error de archivo de descarga de Asp.Net al elegir 'Abrir' en IE9
this.Context.Response.Clear();
this.Context.Response.ClearContent();
this.Context.Response.ClearHeaders();
this.Context.Response.BufferOutput = true;
this.Context.Response.ContentType = "application/msword";
this.Context.Response.AppendHeader("Content-Length", bytes.Length.ToString());
this.Context.Response.AddHeader("Content-Disposition", "attachment; filename=" + "Test Document.doc");
this.Context.Response.BinaryWrite(bytes);
this.Context.ApplicationInstance.CompleteRequest();
Aquí está la pantalla cuando preguntar al usuario de la descarga:
Aquí está la pantalla después de usuario elige 'Abrir'
Aquí está la pantalla después de que el usuario elige 'Reintentar'. Esta pantalla viene para MS Word.
**** **** EDITAR he encontrado un poco de código en línea que he intentado ensayos y la expedición todavía occures cuando llamo a esta función:
protected void GenerateMsWordDoc()
{
string strBody = "<html>" +
"<body>" +
"<div>Your name is: <b>Billy Bob</b></div>" +
"<table width='100%' style='background-color:#cfcfcf;'><tr><td>1st Cell body data</td><td>2nd cell body data</td></tr></table>" +
"Ms Word document generated successfully." +
"</body>" +
"</html>";
string fileName = "MsWordSample.doc";
// You can add whatever you want to add as the HTML and it will be generated as Ms Word docs
Response.AppendHeader("Content-Type", "application/msword");
Response.AppendHeader ("Content-disposition", "attachment; filename="+ fileName);
Response.Write(strBody);
}
¿Qué versión de Word está en uso? – Mike
Microsoft Word 2007 –
¿Styles/Site.css es un CSS de su sitio? en caso afirmativo, ¿verificó el encabezado y el contenido de la respuesta del lado del cliente para ver si no se adjunta nada a la respuesta durante EndRequest? – jbl