사용자가 원격으로 저장된 PDF 파일을 검색 할 수 있도록하는 간단한 HTTP 처리기가 있습니다. 놀랍게도,이 코드는 IE9에서 핸들러가 호출되었지만 IE8이 멈추어있을 때 잘 작동합니다. pdf를 올바르게 표시하려면 url을 다시 호출해야합니다.context.Response.Flush()는 IE8에서는 작동하지 않지만 IE9에서는 정상적으로 작동합니다.
웹에서 응답과 더 관련이 있는지 확인했습니다. 처음에는 응답이 제대로 끝나지 않았지만 아래 기사를 찾았습니다. http://blogs.msdn.com/b/aspnetue/archive/2010/05/25/response-end-response-close-and-how-customer-feedback-helps-us-improve-msdn-documentation.aspx 분명히 context.Response.Close() 또는 context.Response.End()를 사용해서는 안됩니다.
코드 내가 사용하고 있습니다 :
using System.Web;
namespace WebFront.Documents
{
public class PDFDownloader : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Makes sure the page does not get cached
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
// Retrieves the PDF
byte[] PDFContent = BL.PDFGenerator.GetPDF(context.Request.QueryString["DocNumber"]);
// Send it back to the client
context.Response.ContentType = "application/pdf";
context.Response.BinaryWrite(PDFContent);
context.Response.Flush();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
사람이 문제의 동일한 유형에 직면 했습니까?
가능한 복제본 [IE 8 및 클라이언트 측 캐싱] (http://stackoverflow.com/questions/8348214/ie-8-and-client-side-caching)도 http://stackoverflow.com/을 참조하십시오. 질문/9185678/ie7-8-pdf-file-wont-download-with-http-get – nemesv