【发布时间】:2009-12-08 19:59:27
【问题描述】:
我正在开发一个 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> 及其结束标签,它也会失败。
我一直在为这个问题摸不着头脑,有人知道如何让它工作吗?
【问题讨论】:
-
能否请您发布您推荐的示例链接。
标签: asp.net response.transmitfile