Frage

Wir haben einen Windows-Dienst, der auf 2003 Server ausgeführt wird. Es öffnet sich eine Quelle Word-Dokument das Wort Interop verwenden und dann tut einige Sachen mit ihm. Es tut auch ebenfalls mit Excel und Powerpoint-Dateien.

Vor kurzem haben versucht, wir diesen Service auf ein Windows 2008 Server-Computer zu bewegen und haben echte Probleme damit.

COMException bei Microsoft.Office.Interop.Excel.Workbooks.Open COMException bei Microsoft.Office.Interop.Word.Documents.Open

Ich erhalte die oben genannten Ausnahmen, wenn der Windows-Dienst auf 2008 Server ausgeführt wird. Mit Blick auf den Task-Manager nicht geladen die Anwendung ok, aber dann wieder schließt kurz nach.

Ich habe Dinge über Vista und Server lesen 2008 keine session0 mit mehr, und dementsprechend die Office-DCOM-Sicherheitseigenschaften ändern versucht haben, einschließlich der Identität des Benutzers zu ändern, sie zu Integrated aber ohne Erfolg ausgeführt wird.

Wer weiß, ob dies überhaupt möglich ist? Dies ist ein grundlegender Aspekt unseres Systems und so müssen wir diese in der Lage sein zu tun.

Danke

War es hilfreich?

Lösung

Ich habe Probleme gehabt Office von einem Windows-Dienst unter Windows Server 2008 zu automatisieren, obwohl das funktioniert unter Windows Server 2003 in Ordnung Das Problem bei dem Open-Aufruf erfolgt auch, so ist es das gleiche Problem sein kann.

Ich habe versucht, im Anschluss an die Beratung von H Ogawa in dieser MSDN-Thread , und es schien zu funktionieren. Es ist bizarr, aber ein dickes Lob an Herrn Ogawa für sie zu entdecken.

Zusammenfassung der 'Ogawa Hack': ein Desktop-Ordner für das Systemprofil erstellen, wie:

 C:\Windows\System32\config\systemprofile\Desktop

und , auf einer 64-Bit-Maschine, wenn ausgeführt wird, erstellen andere ein, wie:

 C:\Windows\SysWOW64\config\systemprofile\Desktop

, auch der Ordner (n) benötigt Schreibberechtigung für was auch immer Benutzer „Fahren“ Office.


[Edit: korrigiert Link URL]

[Edit 2: klargestellt, dass auf 64-Bit-Windows, müssen Sie beiden Ordner, nicht nur die WOW64 one]

Andere Tipps

Wenn Sie Apache verwenden, können Sie auch diese Schritte folgen müssen, um MS Word ordnungsgemäß funktioniert zu bekommen (zusammen mit allem, was in anderen Antworten beschrieben):

Im Folgenden finden Sie einen Screenshot der beiden Dialoge zeigen Ihnen bringen benötigen: eingeben Bild Beschreibung hier

Für Apache:

Dienste-> Apache-> Rechtsklick (Eigenschaften) -> Registerkarte Anmelden

MS Word:

Starten Sie dcomcnfg.exe-> Konsolen Root-> Component Services-> Computer-> Arbeitsplatz-> DCOM Config-> Finden Microsoft Application-> Rechtsklick (Eigenschaften) -> Identity Tab

**, wenn Sie die MS Word finden, stellen Sie sicher, dass Sie die richtigen DCOM-Konfiguration (64 Bit vs 32 Bit) starten je nachdem, welche Version von Office Sie installiert haben.

Es gibt zwei Möglichkeiten, können Sie Apache-Set verwenden Lokales Systemkonto und aktivieren Sie die Checkbox Desktop-Interaktion zu ermöglichen. Wenn Sie dies tun, dann müssen Sie setzen die Identität für MS Word Interaktiver Benutzer .

Ansonsten müssen Sie beide auf den gleichen Benutzer setzen (Ideal des Benutzer, der angemeldet ist), wie im Bild gezeigt.

Nun, Sie müssen "MMC -32" (Eingabeaufforderung) zu starten 32-Bit-MMC und fügen Sie dann Component Services (Datei> Add / Remove Snap-Ins' Menü)

laufen

dann folgen einer dieser Anweisung:

http://theether.net/download/Microsoft/kb/288366.html

Dies geschieht auch unter Vista mit UAC aktiviert. Vielleicht möchten Sie versuchen, die DCOM-Identität Einstellung eines Administratorkontos zu sein, und testen Sie es noch einmal.

Ich habe vor kurzem auch der Autor dieses Problem auf einem XP-Box mit versuchen, Arbeitsmappen in Excel durch Interop-Dienste zu öffnen, aber noch nicht eine Abhilfe gefunden. Ich selbst möchte noch andere Erkenntnisse die Gemeinschaft könnte in der Lage sein, da draußen zu werfen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top