我想将文件下载到客户端计算机。下面是我在另一个应用程序中使用的代码,但现在在我当前的应用程序中,这会在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();
}
}