0
症狀非常類似於C# BinaryWrite over SSL但我的代碼已經符合所有建議的解決方案。在撰寫本文時,此行爲在Edge,IE11和Chrome上都很明顯。通過HTTPS傳遞時,通過HTTP正常工作的代碼破裂。HTTPS內容處置附件
private void RenderPdfToResponse(bool asDownload, byte[] documentBytes)
{
Response.BufferOutput = true;
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("Cache-control", "no-store");
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Length", documentBytes.Length.ToString());
if (asDownload)
Response.AddHeader("Content-Disposition",
string.Format("attachment; filename=export{0:yyyyMMddHHmmss}.pdf", DateTime.UtcNow));
Response.BinaryWrite(documentBytes);
Response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
問題出在瀏覽器上。交付應保存到文件中的二進制內容,而是在瀏覽器窗口中呈現。使用調試工具進行截取並保存到文件中,可以驗證交付的字節是否構成有效的PDF。
鑑於所引用問題的所有建議已經生效,問題在於瀏覽器行爲,還有哪些選項?