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)
{
}
上記のコードは機能しています。しかし、キャッチブロックに行き、エラーを表示します:
"[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(); 行をこの行に置き換えました
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();
助けなしで使ってみました: