2009-10-22 7 views
2

나는 필사적이고 망가진 남자를 만난다 ....Response.Redirect Word 문서 글리치?

나는 기업의 인트라넷/검색 엔진 어플리케이션을 개발 중이다. 사용자가 문서를 열면 ASP.NET 코드가 Windows 이벤트 로그에 작업을 기록한 다음 보안/감사를 위해 "Response.Redirect"를 발급합니다.

프로세스는 다음과 같습니다 - 사용자의 LinkButton을 클릭 "문서 열기 내 Document.doc" - 다시 게시가 발생 - Response.Redirect를 지정된 문서를 탐색 - 서버 측 코드는 SQL + Windows 이벤트에 대한 사용자 개방 문서 작업 로그 기록

Word 문서를 제외한 모든 항목에 대해 문제없이 작동합니다. 예, PDF, 도트 JPG입니다. 워드 2007

코드를 사용하는 것은 :

Response.Redirect("http://intranet/wcm/mydocument.doc"); 

이 코드를 호출하고, 기존의 워드 인스턴스가 열려

, 워드 단지 '깜박'이미 작업 표시 줄에 열려있는 모든 문서. 사용자가 작업 표시 줄에서 번쩍이는 깜박이는 Word 인스턴스를 클릭하면 즉시 예상 한 문서가 열립니다. 아!

왜! 그것은 나를 미치게합니다.

***** Sidenote : * Word 문서가 지정된 경우 Internet Explorer는 클라이언트 측 javascript 'window.open'을 무시합니다. 그래서 나는 그것을 사용할 수 없습니다. ***

답변

1

문서를 다운로드 한 후 의사 결정 프로세스가 Microsoft Word에 달려있는 것처럼 보입니다. 그 시점에서 브라우저가 작동하기 때문에 손을 놓을 수 있습니다. 다운로드의 MIME 형식을 변경하여 Word/IE에서 즉시 인식하지 못하게하고 사용자가이를 디스크에 저장하도록 강요합니다 (다른 브라우저가 어떻게 처리 할 것인지에 따라 다를 수 있음). ..

편집 : Microsoft에서 직접 how to force a download for a known mime type에 대한 정보. 이 방법을 선택하면 Content-Disposition 헤더를 프로그래밍 방식으로 설정해야합니다. Response.Redirect를 다운로드 (예 : Content-Disposition)에 맞게 머리글을 수정 한 ASPX 페이지와 바꾸면 다운로드 프로세스를 사용자 지정해야하고 프로그래밍 방식으로 파일을 디스크에서 읽고 Response에 씁니다. 출력 스트림. Microsoft는 HttpResponse class의 Write 메서드를 사용하여 MSDN 설명서에 많은 좋은 코드 샘플을 제공합니다. 당신은 그 중 하나 또는 그 조합을 발견 할 것입니다.