Response.Redirect Word Document Glitch? - PullRequest
2 голосов
/ 22 октября 2009

Я пришел отчаявшимся и сломленным человеком ....

Я разрабатываю приложение для корпоративной интранет / поисковой системы. Когда пользователи открывают документ, мой код ASP.NET записывает действие в журнал событий Windows, а затем выдает «Response.Redirect» (для безопасности / аудита).

Процесс это: - Пользователь нажимает LinkButton «Открыть документ My Document.doc» - происходит обратная передача - Серверный код записывает действия пользователя по открытию документа в журнал событий SQL + Windows - Response.Redirect переходит к указанному документу

Отлично работает для всех , за исключением документов Word. EG, PDF, JPG в порядке. Использование Word 2007.

Код:

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

Когда я вызываю этот код, и существующий экземпляр Word открыт, Word просто «мигает» любые документы, которые уже открыты в панели задач. Когда пользователь щелкает раздражающий мигающий экземпляр Word на панели задач, он мгновенно открывает документ, который должен был. Орг!

ПОЧЕМУ !? Это сводит меня с ума.

***** Sidenote: * Internet Explorer игнорирует клиентский JavaScript 'window.open', если указан документ Word. Так что я не могу это использовать. ***

1 Ответ

1 голос
/ 22 октября 2009

Похоже, что процесс принятия решения до Microsoft Word после загрузки документа. В этот момент он не работает браузером, потому что его работа выполнена. Возможно, вы захотите изменить Mime-тип загружаемого файла, чтобы Word / IE не сразу его распознал, и пользователь был вынужден сохранить его на диск (и это могло бы больше соответствовать тому, как другие браузеры справились бы с этим) .. ..

Редактировать: Прямо от Microsoft, информация о , как заставить загрузку для известного типа MIME . Если вы выберете этот способ, заголовок Content-Disposition должен быть установлен программно. Вам нужно будет настроить процесс загрузки, заменив Response.Redirect чем-то другим, например страницей ASPX, которая изменяет свои заголовки в соответствии с требованиями для загрузки (особенно Content-Disposition), а затем программно читает файл с диска и записывает его в Response выходной поток. Microsoft имеет много хороших примеров кода в своих документах MSDN в методах записи класса HttpResponse ; Скорее всего, вы найдете один или их комбинацию.

...