gpt4 book ai didi

asp.net - Response.TransmitFile、Response.End 和 IE 的问题

转载 作者:行者123 更新时间:2023-12-02 13:53:37 27 4
gpt4 key购买 nike

我正在开发一个 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 ,它会再次起作用。行(但据我所知,这行应该在那里,至少根据我在网络上找到的每个示例代码)

我注意到的另一个可能相关或不相关的问题是,如果我删除 <html>, <head> 它也会失败。及其结束标签。

我已经为此绞尽脑汁有一段时间了,有谁知道如何让它发挥作用吗?

最佳答案

不要使用 Response.End();

尝试

Response.TransmitFile(filePath);
Response.End();

事实上,.NET 2.0之后,你应该使用

Response.TransmitFile(filePath);
context.HttpApplication.CompleteRequest();

关于asp.net - Response.TransmitFile、Response.End 和 IE 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1869440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com