Question

Nous disposons d’un service Windows fonctionnant sur le serveur 2003. Il ouvre un document Word source à l'aide de Word Interop, puis effectue des opérations avec celui-ci. Il en va de même avec les fichiers Excel et PowerPoint.

Nous avons récemment essayé de transférer ce service sur un ordinateur Windows 2008 Server et nous rencontrons de réels problèmes.

Exception COM à Microsoft.Office.Interop.Excel.Workbooks.Open COMException à Microsoft.Office.Interop.Word.Documents.Open

J'obtiens les exceptions ci-dessus lorsque le service Windows est exécuté sur 2008 Server. En regardant le gestionnaire de tâches, l'application se charge correctement, mais se ferme à nouveau peu de temps après.

J'ai lu des informations sur le fait que Vista et Server 2008 n'avaient plus de Session0 et j'ai essayé de modifier les propriétés de sécurité d'Office DCOM en conséquence, notamment en changeant l'identité de l'utilisateur qui les exécutait sur Integrated, mais en vain.

Est-ce que quelqu'un sait si cela est possible? C'est un aspect fondamental de notre système et nous devons donc pouvoir le faire.

Merci

Était-ce utile?

La solution

J'ai eu des problèmes pour automatiser Office à partir d'un service Windows sous Windows Server 2008, bien que cela fonctionne correctement sous Windows Server 2003. Le problème se produit également lors de l'appel Open. Il peut donc s'agir du même problème.

J'ai essayé de suivre les conseils de H Ogawa dans ce thread MSDN , et cela semblait fonctionner. C'est bizarre, mais bravo à M. Ogawa pour l'avoir découvert.

Résumé de 'Ogawa Hack': créez un dossier de bureau pour le profil système, en tant que:

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

et , si vous utilisez une machine 64 bits, créez-en une autre , en tant que:

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

De plus, le ou les dossiers ont besoin d'une autorisation en écriture pour l'utilisateur, quel que soit l'utilisateur "conduisant". Bureau.

[Éditer: URL du lien corrigée]

[Edit 2: clarifié que sous Windows 64 bits, vous avez besoin des deux dossiers, pas seulement du dossier WOW64]

Autres conseils

Si vous utilisez Apache, vous devrez peut-être également suivre ces étapes pour que MS Word fonctionne correctement (ainsi que tout ce qui est décrit dans d'autres réponses):

Vous trouverez ci-dessous une capture d'écran illustrant les deux boîtes de dialogue à afficher: entrer la description de l'image ici

Pour Apache:

Services- > Apache- > Clic droit (Propriétés) - > onglet Connexion

MS Word:

Lancez dcomcnfg.exe- > Console Root- > Services de composants- > Ordinateurs- > Mon ordinateur- > Configuration DCOM- > Trouver une application Microsoft > Clic droit (Propriétés) - > Identité

** Si vous ne trouvez pas le fichier MS Word, assurez-vous de lancer la configuration DCOM correcte (64 bits contre 32 bits) en fonction de la version d'Office que vous avez installée.

Il existe deux options ici. Vous pouvez configurer Apache pour qu’il utilise Compte système local et cochez la case pour PERMETTRE l’interaction au bureau. Dans ce cas, vous devez définir Identité pour MS Word sur Utilisateur interactif .

Sinon, vous devez définir les deux sur le même utilisateur (idéalement l'utilisateur connecté), comme indiqué dans l'image.

Eh bien, vous devrez exécuter " MMC -32 " (invite de commande) pour lancer la console MMC 32 bits, puis ajouter des services de composants (menu Fichier> gt; Ajouter / Supprimer des composants logiciels enfichables)

puis suivez l'une de ces instructions:

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

Ceci se produit également sur Vista avec UAC activé. Vous voudrez peut-être essayer de définir l’identité DCOM comme un compte administrateur et de le tester à nouveau.

J'ai récemment aussi rencontré ce problème sur un ordinateur XP en essayant d'ouvrir des classeurs dans Excel via des services interop, mais je n'ai pas encore trouvé de solution de contournement. Je souhaiterais moi-même que la communauté puisse émettre d'autres idées ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top