Mamy serwer Apache Subversion, na którym przechowujemy (między innymi) całą naszą dokumentację. Mamy wiele dokumentów Word, Excel, PDF itp. W svn, a wszyscy nasi użytkownicy używają TortoiseSVN jako interfejsu klienta. Wielu z tych użytkowników będzie również przeglądać repozytorium za pomocą przeglądarki internetowej, którą (niestety) jest często Internet Explorer.
Niedawno rozpoczęliśmy testowanie pakietu Office 2010 (pochodzącego z 2003 r.) I stwierdziliśmy, że dokumenty z repozytorium są otwierane inaczej podczas przeglądania w przeglądarce IE. Zamiast pobierać plik IE, a następnie wysyłać go do odpowiedniej aplikacji (po czym powinna to być tylko tymczasowa kopia przechowywana lokalnie), wysyła adres URL dokumentu do aplikacji. Dokument jest pobierany przez aplikację, a następnie traktowany tak, jakby pochodził z serwera Sharepoint, tzn. Aplikacja próbuje go zablokować, a następnie automatycznie przesyła zapisane zmiany z powrotem na serwer.
Z Google'a wynika, że wiele osób chce tego zachowania. Chcemy jednak to wyłączyć - nie pasuje do naszych istniejących procesów. Jak mogę to zrobić?
Nie mam dużej kontroli nad komputerami klienckimi, więc rozwiązania polegające na wyłączeniu wszystkich funkcji współpracy dokumentów pakietu Office dla każdego klienta nie są tym, czego szukam. Poza tym nie mogłem znaleźć wiele rzeczy, które mógłbym zrobić inaczej niż wyłączenie dodatku Office Document Cache Handler w IE. Jedyne możliwe opcje po stronie klienta to te, które specjalnie wyłączają tę funkcję dla naszego nazwanego serwera, ale pozostawiają ją włączoną dla innych.
Pozostawia to rozwiązania po stronie serwera. Domyślam się, że Office widzi, że serwer svn ma obsługę WebDAV i dlatego przechodzi do przepływu pracy zarządzania dokumentami podobnego do Sharepointa. Czy jest jakiś sposób na zatrzymanie tego rodzaju integracji bez wyłączenia całej obsługi WebDAV na serwerze (zakładając, że możemy to zrobić)? Właściwie używamy autoversion SVN nieco do innych celów, więc jest to wymagana funkcja. Znalazłem dyskusję na temat wyłączania tej funkcji, jeśli faktycznie jest to serwer Sharepoint, ale tak nie jest! Moje rozumienie tego, jak to działa (tj. Klient Office identyfikujący obsługę WebDAV na serwerze) jest dość ograniczone, więc proszę wyjaśnić dalej, jeśli możesz.
W razie potrzeby konfiguracja serwera to:
Apache v2.2.8 i Subversion v1.4.6 na Ubuntu Hardy 8.04.
źródło
svnserve
zamiast niego.Odpowiedzi:
Rozwiązałem to (w końcu). http://support.microsoft.com/kb/838028 wyjaśnia, w jaki sposób Office używa Microsoft Office Protocol Discovery w celu ustalenia, czy serwer dokumentów ma możliwości WebDAV. Wysyła żądanie HTTP 1.1 OPCJE i oczekuje odpowiedzi 200 OK z wyszczególnieniem dostępnych funkcji DAV. Serwer Subversion ma (ograniczoną) obsługę DAV i odpowiedzi jako takie, a następnie Office używa go do bezpośredniego zapisu na serwerze.
Rozwiązaniem, które zastosowaliśmy, było użycie mod_rewrite na serwerze Apache w celu przechwycenia tych żądań i wysłania odpowiedzi 405 Niedozwolona metoda. Ponowna konfiguracja to:
Przechwytuje wszystkie żądania metody OPCJE pochodzące od agentów o nazwie „Wykrywanie protokołu Microsoft Office” i odsyła 405. Rozwiązanie to zostało zasugerowane przez pierwszy komentarz na stronie http://rails.nuvvo.com/lesson/2318-dealing- with-microsoft-office-protokół-discovery-in-rails # komentarze .
Teraz Office wypróbowuje kilka żądań OPTIONS, zostaje odrzucony przez 405, a następnie poddaje się i wyłącza całą obsługę DAV dla tego konkretnego serwera, pozostawiając włączoną dla innych serwerów, z którymi klienci mogą chcieć wchodzić w interakcje.
źródło
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.*$