我有一个返回字节数组的方法。然后我将此数组作为excel文件写入输出流。有些用户在ie7中报告“Internet Explorer无法打开此网站”错误。
当我在测试环境中运行它时(使用ie9),我没有收到此错误。但是有时第一次单击链接时,Excel将打开,但是我会收到一条错误,上面写着“将命令发送到程序时出现问题”并且文件未加载到Excel中。如果我再次单击该链接,该文件将在Excel中打开。这是在用户单击页面上的链接后通过响应流发送字节数组的代码。
byte[] buffer = GetBinary();
Response.ContentType = "application/vnd.ms-excel";
Response.Buffer = true;
Response.Expires = 0;
Response.AddHeader("Content-Type", "application/vnd.ms-excel");
Response.AddHeader("Content-Length", buffer.Length.ToString());
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.AddHeader("Content-Disposition", "attachment;filename=xx.xls");
Response.BinaryWrite(buffer);
Response.End();
如果它有任何区别,它们单击的链接将打开一个新窗口,上面的代码块将在新页面的page_load事件中执行。什么可能导致这些错误?我之前使用过类似的代码而没有任何问题。