Stoppen der Integration von Microsoft Office 2010 in den Subversion-Server, als wäre es Sharepoint

10

Wir haben einen Apache Subversion-Server, auf dem wir (unter anderem) unsere gesamte Dokumentation speichern. Wir haben viele Word-, Excel-, PDF- usw. Dokumente in svn, und alle unsere Benutzer verwenden TortoiseSVN als Client-Oberfläche. Viele dieser Benutzer durchsuchen das Repo auch über einen Webbrowser, der (leider) häufig Internet Explorer ist.

Vor kurzem haben wir mit dem Testen von Office 2010 (ab 2003) begonnen und festgestellt, dass Dokumente aus dem Repo beim Surfen mit dem Internet Explorer anders geöffnet werden. Anstatt dass der IE die Datei herunterlädt und sie dann an die entsprechende App sendet (danach sollte es sich nur um eine temporär lokal gespeicherte Kopie handeln), sendet er die URL für das Dokument an die App. Das Dokument wird von der App heruntergeladen und dann so behandelt, als stamme es von einem Sharepoint-Server. Das heißt, die App versucht, es zu sperren und dann alle gespeicherten Änderungen automatisch wieder auf den Server hochzuladen.

Aus dem Googeln geht hervor, dass viele Menschen dieses Verhalten wollen . Wir möchten es jedoch deaktivieren - es passt nicht zu unseren vorhandenen Prozessen. Wie kann ich das machen?

Ich habe nicht viel Kontrolle über Clientcomputer, daher sind Lösungen, bei denen alle Funktionen für die Zusammenarbeit mit Office-Dokumenten wie diese für jeden Client deaktiviert werden, nicht das, wonach ich suche. Außerdem konnte ich nicht viel anderes finden, als das Office Document Cache Handler-Add-On im IE zu deaktivieren. Die einzigen clientseitigen Optionen, die möglicherweise möglich sind, sind diejenigen, die diese Funktion speziell für unseren benannten Server deaktivieren, aber für andere aktiviert lassen.

So bleiben serverseitige Lösungen. Ich vermute, dass Office erkennt, dass der SVN-Server WebDAV-Unterstützung bietet, und daher in einen Sharepoint-ähnlichen Dokumentenverwaltungsworkflow übergeht. Gibt es eine Möglichkeit, diese Art der Integration zu stoppen, ohne die gesamte WebDAV-Unterstützung auf dem Server zu deaktivieren (vorausgesetzt, wir könnten dies sogar tun)? Wir verwenden die Autoversionierung von svn ein wenig für andere Zwecke, daher ist dies eine erforderliche Funktion. Ich habe eine Diskussion über das Deaktivieren der Funktion gefunden, wenn es sich tatsächlich um einen Sharepoint-Server handelt, aber dies ist nicht der Fall! Mein Verständnis der Funktionsweise dieser Art (dh des Office-Clients, der die WebDAV-Unterstützung auf dem Server identifiziert) ist ziemlich begrenzt. Erklären Sie dies daher bitte weiter, wenn Sie können.

Falls es darauf ankommt, ist das Server-Setup:

Apache v2.2.8 und Subversion v1.4.6 unter Ubuntu Hardy 8.04.

James Tisato
quelle
Ich kann dies nicht als Antwort vorschlagen, da es eher eine umständliche Problemumgehung ist. Ich denke, Sie haben Recht mit dem DFAV, da Apache / SVN DAV als Zugriffsprotokoll verwendet. In diesem Sinne können Sie Apache löschen und svnservestattdessen verwenden.
SmallClanger
Vielen Dank für den Vorschlag, aber svnserver ist für uns keine Option. Wir haben viele Anpassungen vorgenommen, die davon abhängen, ob wir Apache verwenden.
James Tisato
Ich habe einen sehr nützlichen Artikel von MS gefunden (ich war überrascht!): Support.microsoft.com/kb/838028 Es scheint, dass der Apache-Server durch seine Antwort auf HTTP 1.1-OPTIONEN angibt, dass er WebDAV-Vorgänge ausführen kann und Office sie daher verwendet . Wo ist die verdammte Option zu sagen "Ich möchte, dass auf meinem Server WebDAV verfügbar ist, aber ich möchte nicht, dass Office es verwendet?!"
James Tisato

Antworten:

12

Hat es (endlich) gelöst. Unter http://support.microsoft.com/kb/838028 wird erläutert, wie Office mithilfe der Microsoft Office-Protokollerkennung ermittelt, ob der Dokumentenserver über WebDAV-Funktionen verfügt. Es sendet eine HTTP 1.1 OPTIONS-Anforderung und erwartet eine Antwort mit 200 OK, in der die verfügbaren DAV-Funktionen aufgeführt sind. Der Subversion-Server bietet (eingeschränkte) DAV-Unterstützung und antwortet als solche. Office verwendet diese dann, um direkt auf den Server zurückzuschreiben.

Die Lösung, die wir verwendet haben, bestand darin, mod_rewrite auf dem Apache-Server zu verwenden, um diese Anforderungen abzufangen und eine 405-Methode nicht zugelassene Antwort zurückzusenden. Die Umschreibekonfiguration lautet:

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

Es fängt alle Anforderungen der Methode OPTIONS ab, die von Agenten mit dem Namen "Microsoft Office Protocol Discovery" stammen, und sendet eine 405 zurück. Diese Lösung wurde durch den ersten Kommentar auf http://rails.nuvvo.com/lesson/2318-dealing- vorgeschlagen. mit-Microsoft-Office-Protokoll-Discovery-in-Rails # Kommentare .

Jetzt versucht Office einige OPTIONS-Anforderungen, wird vom 405 abgelehnt, gibt dann die gesamte DAV-Unterstützung für diesen bestimmten Server auf und deaktiviert sie, während sie für alle anderen Server aktiviert bleibt, mit denen Clients möglicherweise interagieren möchten.

James Tisato
quelle
Ich danke dir sehr! Während ich Subversion nicht verwende, habe ich das gleiche Kernproblem bekämpft und konnte bis jetzt keine Dokumentation finden. Ich bin mir immer noch nicht 100% sicher, ob es das ist oder alles , aber es klingt so. Durch das Öffnen von Office-Dokumenten, die auf einer Webseite verlinkt sind, wurden die internen Hyperlinks (relativ, ohne Pfad) zu vollständig qualifizierten http-Adressen mit Pfad, obwohl die Kopie aus einem lokalen Cache angezeigt werden sollte. Dies geschah nur in IE ... FF und Chrome zeigten (wie erwartet) defekte Links aus dem lokalen Dateicache. Vielen Dank noch mal.
one.beat.consumer
1
Von @chekolyn vorgeschlagen, fügen Sie die folgenden drei Zeilen hinzu, um die Konfiguration neu zu schreiben: 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 () -Aufrufe generieren keine OPTIONS-Anforderung, aber sie generieren ein zusätzliches GET. Die Benutzeragentenzeichenfolge, auf die bei ihnen geachtet werden muss, lautet "ms-office". Durch die Rückgabe eines Fehlers 405 funktionierten die Hyperlinks überhaupt nicht richtig, aber die Rückgabe einer leeren 200-Antwort für Office hat den Trick ausgeführt. Der Standard-Webbrowser wurde fast sofort für die URL geöffnet (ich verwende ASP.NET unter IIS, also habe ich es getan dies vor der Authentifizierung).
richardtallent
Jetzt haben einige Excel-Versionen jedoch kein MS-Office mehr. Zum Beispiel mein 2013 nicht.
Mplungjan