以下のコードを使用して、asp.netにファイルをダウンロードしています
public void DownloadFile(String fileName, String msg)
{
if (String.IsNullOrEmpty(fileName))
{
fileName = "Document.txt";
}
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.BufferOutput = true;
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
using (MemoryStream ms = new MemoryStream())
{
using (StreamWriter sw = new StreamWriter(ms))
{
sw.Write(msg);
sw.Flush();
ms.Position = 0;
using (Stream download = ms)
{
byte[] buffer = new Byte[ms.Length];
if (HttpContext.Current.Response.IsClientConnected)
{
int length = 0;
length = download.Read(buffer, 0, buffer.Length);
HttpContext.Current.Response.OutputStream.Write(buffer, 0, length);
}
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
}
}
}
「HttpContext.Current.Response.End();」で例外が発生しています。
HttpContext.Current.Response.End(); コードが最適化されているか、ネイティブ フレームがコール スタックの一番上にあるため、式を評価できません。
そのコードで何を変更する必要がありますか? 私が間違っているところ。