Остановка Microsoft Office 2010 от интеграции с сервером Subversion, как если бы он был Sharepoint

10

У нас есть сервер Apache Subversion, на котором (помимо прочего) мы храним всю нашу документацию. У нас в svn много документов Word, Excel, PDF и т. Д., И все наши пользователи используют TortoiseSVN в качестве клиентского интерфейса. Многие из этих пользователей также просматривают репозиторий через веб-браузер, который (к сожалению) часто является Internet Explorer.

Недавно мы начали пробную версию Office 2010 (начиная с 2003 года) и обнаружили, что документы из репозитория открываются по-разному при просмотре в IE. Вместо того, чтобы загружать файл, а затем отправлять его в соответствующее приложение (после чего это должна быть просто временная копия, хранящаяся локально), он отправляет URL-адрес документа в приложение. Документ загружается приложением, а затем обрабатывается так, как если бы он был получен с сервера Sharepoint, то есть приложение пытается заблокировать его и затем автоматически выгружать все сохраненные изменения обратно на сервер.

Из Google, кажется, многие люди хотят такого поведения. Однако мы хотим отключить его - он не соответствует нашим существующим процессам. Как я могу сделать это?

У меня нет большого контроля над клиентскими компьютерами, поэтому решения, которые включают отключение всех функций совместной работы с документами Office, как это для каждого клиента, не то, что я ищу. Кроме того, я не смог найти много чего, кроме как отключить надстройку Office Document Cache Handler в IE. Единственными возможными вариантами на стороне клиента являются те, которые специально отключают эту функцию для нашего именованного сервера, но оставляют ее включенной для других.

Так что это оставляет серверные решения. Я предполагаю, что Office видит, что сервер svn имеет поддержку WebDAV и, следовательно, переходит в рабочий процесс управления документами, похожий на Sharepoint. Есть ли способ остановить такую ​​интеграцию, не отключая всю поддержку WebDAV на сервере (если мы можем это сделать)? На самом деле мы немного используем автоверсию svn для других целей, поэтому это обязательная функция. Я нашел обсуждение отключения этой функции, если на самом деле это сервер Sharepoint, но это не так! Мое понимание того, как работают подобные вещи (например, клиент Office, определяющий поддержку WebDAV на сервере), довольно ограничено, поэтому, пожалуйста, объясните, если можете.

В случае, если это имеет значение, настройка сервера:

Apache v2.2.8 и Subversion v1.4.6 в Ubuntu Hardy 8.04.

Джеймс Тисато
источник
Я не могу предложить это как ответ, так как это более громоздкий обходной путь. Я думаю, что вы правы в отношении DFAV, поскольку Apache / SVN использует DAV в качестве протокола доступа. Имея это в виду, вы можете оставить Apache и использовать svnserveвместо этого.
SmallClanger
Спасибо за предложение, но svnserver нам не подходит. У нас есть много настроек, которые зависят от нас, использующих Apache.
Джеймс Тисато
Я нашел очень полезную статью от MS (я был удивлен!): Support.microsoft.com/kb/838028 Похоже, что сервер Apache через свой ответ HTTP 1.1 OPTIONS указывает, что он способен к операциям WebDAV, и поэтому Office использует их , Где чертовски вариант сказать: «Я хочу, чтобы на моем сервере был доступен WebDAV, но я не хочу, чтобы Office использовал его ?!»
Джеймс Тисато

Ответы:

12

Решил это (наконец-то). http://support.microsoft.com/kb/838028 объясняет, как Office использует обнаружение протоколов Microsoft Office для определения, имеет ли сервер документов возможности WebDAV. Он отправляет запрос HTTP 1.1 OPTIONS и ожидает ответа 200 OK с подробным описанием доступных функций DAV. Сервер Subversion имеет (ограниченную) поддержку DAV и отвечает как таковой, а затем Office использует ее для прямой записи на сервер.

Решением, которое мы использовали, было использование mod_rewrite на сервере Apache для перехвата этих запросов и отправки ответа 405 Method Not Allowed. Конфигурация перезаписи:

# Intercept Microsoft Office Protocol Discovery
RewriteCond %{REQUEST_METHOD} ^OPTIONS
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
RewriteRule .* - [R=405,L]

Он перехватывает все запросы метода OPTIONS, поступающие от агентов с именем «Обнаружение протокола Microsoft Office», и отправляет обратно сообщение 405. Это решение было предложено в первом комментарии на http://rails.nuvvo.com/lesson/2318-dealing- with-microsoft-office-protocol-discovery-in-rails # комментарии .

Теперь Office пытается выполнить несколько запросов OPTIONS, получает отказ в 405, затем отказывается и отключает всю поддержку DAV для этого конкретного сервера, оставляя его включенным для любых других серверов, с которыми клиенты могут захотеть взаимодействовать.

Джеймс Тисато
источник
Спасибо большое! Хотя я не использую Subversion, я боролся с той же основной проблемой и до сих пор не могу найти документацию. Я все еще не на 100% уверен, что это или все , но это звучит так. Открытие документов Office, связанных на веб-странице, сделало внутренние гиперссылки (относительные, без пути) полностью квалифицированными http-адресами с указанием пути, даже если копия должна просматриваться из локального кэша. Это произошло только в IE ... FF и Chrome показывали неработающие ссылки (как и ожидалось) из локального файлового кэша. Еще раз, спасибо.
one.beat.consumer
1
По предложению @chekolyn добавьте следующие три строки для переписывания конфигурации: RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Protocol\ Discovery [OR] RewriteCond %{HTTP_USER_AGENT} ^Microsoft\ Office\ Existence\ Discovery [OR] RewriteCond %{HTTP_USER_AGENT} ^Microsoft\-WebDAV\-MiniRedir.*$
HopelessN00b
Вызовы Excel HYPERLINK () не генерируют запрос OPTIONS, но они генерируют дополнительный GET. Строка user-agent, за которой нужно следить, называется ms-office. При возврате ошибки 405 гиперссылки вообще не работали должным образом, но при возврате пустого ответа 200 для Office все получилось, он почти сразу открыл веб-браузер по умолчанию для URL (я использую ASP.NET в IIS, поэтому я сделал это до аутентификации).
Ричардталлент
Однако теперь у некоторых из них больше нет ms-office. Например мой 2013 нет.
mplungjan