Powstrzymywanie integracji Microsoft Office 2010 z serwerem Subversion tak, jakby to był Sharepoint

11

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.

James Tisato
źródło
Nie mogę zasugerować tego jako odpowiedzi, ponieważ jest to bardziej kłopotliwe obejście. Myślę, że masz rację co do DFAV, ponieważ Apache / SVN używa DAV jako protokołu dostępu. Mając to na uwadze, możesz upuścić Apache i użyć svnservezamiast niego.
SmallClanger,
Dzięki za sugestię, ale svnserver nie jest dla nas opcją. Mamy wiele dostosowań, które zależą od nas, używając Apache.
James Tisato,
Znalazłem bardzo przydatny artykuł od MS (byłem zaskoczony!): Support.microsoft.com/kb/838028 Wygląda na to, że serwer Apache wskazuje poprzez swoją odpowiedź OPCJE HTTP 1.1, że jest w stanie wykonywać operacje WebDAV, a zatem Office je wykorzystuje . Gdzie do cholery jest powiedzenie „Chcę, aby mój serwer miał dostęp do WebDAV, ale nie chcę, żeby Office go używał ?!”
James Tisato,

Odpowiedzi:

13

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:

# 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]

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.

James Tisato
źródło
Dziękuję bardzo! Chociaż nie używam Subversion, walczyłem z tym samym podstawowym problemem i do tej pory nie mogłem znaleźć dokumentacji. Nadal nie jestem w 100% pewien, że to jest to wszystko , ale brzmi to tak. Otwieranie dokumentów pakietu Office połączonych ze stroną internetową spowodowało, że wewnętrzne hiperłącza (względne, bez ścieżki) w pełni kwalifikowały się do adresów http z ścieżkami, nawet jeśli kopia powinna być wyświetlana z lokalnej pamięci podręcznej. Stało się to tylko w IE ... FF i Chrome pokazały uszkodzone linki (zgodnie z oczekiwaniami) z lokalnego bufora plików. Dziękuję raz jeszcze.
one.beat.consumer
1
Sugerowane przez @chekolyn, dodaj następujące trzy wiersze, aby przepisać konfigurację: 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
Wywołania Excel HYPERLINK () nie generują żądania OPCJE, ale generują dodatkowy GET. Ciąg klienta-agenta, którego należy wraz z nimi szukać, to „ms-office”. Zwrócenie błędu 405 sprawiło, że hiperłącza w ogóle nie działały poprawnie, ale zwrócenie pustej odpowiedzi 200 dla pakietu Office załatwiło sprawę, prawie natychmiast otworzyło domyślną przeglądarkę internetową pod adresem URL (używam ASP.NET na IIS, więc zrobiłem to to przed uwierzytelnieniem).
richardtallent
Jednak teraz niektórzy specjaliści nie mają już w nich pakietu MS-office. Na przykład mój 2013 nie.
mplungjan