在asp.net中从服务器下载文件到客户端时出错?

时间:2013-12-17 06:38:18

标签: c# asp.net crystal-reports

我想将文件下载到客户端计算机。下面是我在另一个应用程序中使用的代码,但现在在我当前的应用程序中,这会在Response.End()上引发错误。

我发现from here使用HttpContext.Current.ApplicationInstance.CompleteRequest代替Response.End()

但是现在错误消失了,代码运行完毕但是下载过程仍然无法启动。我通过在互联网上搜索尝试了不同类型的代码但是徒劳无功:

  

无法评估表达式,因为代码已优化或本机框位于调用堆栈之上。

请注意,我也在Thread.ResetAbort()中使用了try catch,但没有开始下载。

我目前使用的代码如下:

 string fileName = "Mifare.txt";

 File.WriteAllText(Server.MapPath("~/Mifare.txt"), text);

 Response.ContentType = "text/txt";
 Response.AppendHeader("Content-Disposition", "attachment;

 filename=" + fileName + ".txt");

 Response.TransmitFile(Server.MapPath("~/Mifare.txt"));

 Response.End();

请任何人都可以帮助我。另请注意,在同一页面上,我使用水晶报告pdf和excel下载方法,它们工作正常。但是在这个下载文本文件的方法上我遇到了错误。

以下是我的代码,该代码位于同一页面,以crystal report格式下载pdf,效果很好。

protected void btnExport_Click(object sender, EventArgs e)
{        
    ReportDocument repDoc = (ReportDocument)Session["ReportDocument"];        
    Response.Buffer = false;        
    Response.ClearContent();
    Response.ClearHeaders();
    try
    {            
        repDoc.ExportToHttpResponse(ExportFormatType.PortableDocFormat,
           Response, true, "Mifare");                        
    }
    catch (Exception ex)
    {
        Thread.ResetAbort();
    }
}

0 个答案:

没有答案