2009-11-17 1 views
0

특정 IE 구현에만 매우 흥미로운 문제가 있습니다. 페이지에 사용자에게 파일을 쓰는 데 다음 코드를 사용하는 프로세스의 일부로 사용자에게 파일을 쓰는 데 사용되는 ASPX 페이지가 있습니다.IE에서 산발적 인 오류를주는 사용자에게 파일 쓰기

Response.Clear(); 
Response.AddHeader("content-disposition", "attachment;filename=download" + System.IO.Path.GetExtension(oInfo.SupportingFilePath)); 
Response.ContentType = "application/octet-stream"; 
Response.WriteFile(Server.MapPath(oInfo.SupportingFilePath)); 
Response.End(); 

이 특정 시스템에 IE 내에서 드문 상황에서, 그러나, 잘 작동하는 경우 99.5 %에서, 사용자는 .aspx 페이지를 다운로드하라는 메시지가 표시됩니다 및/또는 오류 메시지가 주어집니다 .

누구나 여기서 무슨 일이 벌어지고 있는지 알 수 있습니까?

답변

1

RFC2231에 따르면 MIME 헤더의 매개 변수 값은 큰 따옴표 (http://www.ietf.org/rfc/rfc2231.txt)로 포함되어야합니다 (원하는 경우 3 페이지). "첨부 파일; filename =" "다운로드"+ System.IO.Path.GetExtension (oInfo.SupportingFilePath) + "" "");

+0

와우,이 경우에는, 감사합니다 .... 나는 이것을 시험해야 할 것입니다. –

+0

고맙습니다. –

0

ContentTypecontent-disposition을 설정했기 때문에 이러한 일이 발생하지 않아도되지만 IE의 기본 MIME 스니핑/처리가 여기에서 문제를 일으키는 원인이라고 생각합니다. 여기에 해결 방법의 커플/당신이 시도 할 수 있습니다 해킹 :

  • 즉 파일을 전송하는 .aspx 페이지에 쿼리 문자열에 파일 확장자를 추가, http://blahblahblah/page.aspx?.ext
  • 하는 당신이 IE를 사용하는 경우 8의 경우 "nosniff"에 대해 다른 응답 헤더를 지정할 수 있습니다 (지정된 here). here을 문서화

나는 여전히이 문제가 있습니다, 그러나 나는 이들 중 하나가 도움이되기를 바랍니다.