最初は、Response.Close と Response.End の違いを理解しようとしていましたが、さらにグーグルと調査を行った後、Byte[] がクライアントに送り返される一般的な方法を見たことがないことが明らかになりました。以下にコード サンプルを残しておきますが、これを行うための業界標準が何であるかを知りたいと思います。
Byte[] myBytes = GetReportBytes();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AppendHeader("content-length", myBytes.Length.ToString());
HttpContext.Current.Response.AppendHeader("content-Disposition", "attachment;filename=" + this.ReportFileName + GetReportExtension());
HttpContext.Current.Response.ContentType = GetApplicationContentType();
HttpContext.Current.Response.BinaryWrite(myBytes);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
//CERT FIX
//HttpContext.Current.Response.End();