我正在开发一个 ASP.NET 应用程序,它在某一时刻使用 Response.TransmitFile 向用户发送一个文件。
它在我的开发机器上运行良好,当我将它部署到测试服务器时,它仍然可以在其中两个上运行;虽然在其中一台服务器(W2K3)中它只适用于 Firefox,但当我在 IE7 上尝试它时,我收到一个错误,如“Internet Explorer 无法在(服务器名称)上打开文件 sendfile.aspx”。
我创建了一个小的内联 aspx 页面来重现问题,这里是:
<%@ Page Language="C#" %>
<html><head>
<script language="CS" runat="server">
void Page_Load(object sender, System.EventArgs e)
{
string filePath = @"C:\temp\export.zip";
Response.ClearHeaders();
Response.ContentType = "application/zip";
Response.Clear();
Response.AppendHeader("Content-disposition", "attachment; filename=export.zip");
Response.TransmitFile(filePath);
Response.End();
}
</script>
</head></html>
我尝试了不同的东西,我注意到如果我注释掉该Response.End
行它会再次起作用(但是根据我在网上找到的每个示例代码,AFAIK 这行应该在那里)
<html>, <head>
我注意到的另一个可能相关也可能不相关的问题是,如果我删除 the及其结束标签,它也会失败。
我已经为此苦苦思索了一段时间,有人知道如何让它工作吗?