我正在使用 asp.net 中的以下代码下载 PDF
try
{
string strURL = Directory.GetFiles(Server.MapPath("PDFs/PrintPDF")).SingleOrDefault();
WebClient req = new WebClient();
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ClearContent();
response.ClearHeaders();
response.Buffer = true;
response.AddHeader("Content-Disposition", "attachment;filename=\"" + strURL + "\"");
byte[] data = req.DownloadData(strURL);
response.BinaryWrite(data);
response.End();//At this line I am getting the error
}
catch (Exception ex)
{
}
上面的代码正在工作。但是去 Catch Block 并显示错误:
"[System.Threading.ThreadAbortException] = {Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.}"
我已经用这条线替换了 response.End();line
HttpContext.Current.ApplicationInstance.CompleteRequest();
正在下载 PDF,但无法打开 PDF。打开 PDF iam 时出现错误:
"there was an error opening this document. the file is damaged and could not be repaired"
我也尝试response.Flush();
在没有帮助的情况下使用: