Domanda

Abbiamo un servizio Windows che gira su Server 2003. Apre un documento Word di origine utilizzando Word Interop e quindi esegue alcune operazioni con esso. Funziona anche con file Excel e PowerPoint.

Di recente abbiamo provato a spostare questo servizio su un computer Windows 2008 Server e abbiamo riscontrato problemi reali con esso.

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

Ottengo le eccezioni sopra riportate quando il servizio Windows è in esecuzione su Server 2008. Guardando Task Manager, l'applicazione si carica ok, ma si chiude di nuovo poco dopo.

Ho letto cose su Vista e Server 2008 che non hanno più una Sessione0 e ho provato a modificare di conseguenza le proprietà di sicurezza di DCOM di Office, inclusa la modifica dell'identità dell'utente che le esegue su Integrata ma senza risultati.

Qualcuno sa se questo è possibile? Questo è un aspetto fondamentale del nostro sistema e quindi dobbiamo essere in grado di farlo.

Grazie

È stato utile?

Soluzione

Ho avuto problemi nell'automazione di Office da un servizio Windows in Windows Server 2008, anche se funziona perfettamente con Windows Server 2003. Il problema si verifica anche durante la chiamata Open, quindi potrebbe essere lo stesso problema.

Ho provato a seguire il consiglio dato da H Ogawa in questo thread MSDN e sembra funzionare. È strano, ma complimenti a Mr. Ogawa per averlo scoperto.

Riepilogo dell '"Ogawa Hack": crea una cartella desktop per il profilo di sistema, come:

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

e , se in esecuzione su un computer a 64 bit, crea un altro , come:

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

Inoltre, le cartelle necessitano dell'autorizzazione in scrittura per qualunque utente stia guidando " Ufficio.


[Modifica: URL del link corretto]

[Modifica 2: chiarito che su Windows a 64 bit, sono necessarie entrambe le cartelle, non solo quella WOW64]

Altri suggerimenti

Se si utilizza Apache, potrebbe essere necessario seguire anche questi passaggi per far funzionare MS Word correttamente (insieme a tutto quanto indicato nelle altre risposte):

Di seguito è riportato uno screenshot che mostra le due finestre di dialogo che devi visualizzare: inserisci qui la descrizione dell'immagine

Per Apache:

Servizi- > Apache- > tasto destro del mouse (Proprietà) - > scheda Accesso

MS Word:

Avvia dcomcnfg.exe- > Console Root- > Component Services- > Computers- > My Computer- > DCOM Config- > Trova Microsoft Application- > tasto destro del mouse (Proprietà) - > scheda Identità

** se non riesci a trovare MS Word, assicurati di avviare la corretta configurazione DCOM (64 bit contro 32 bit) a seconda della versione di Office installata.

Ci sono due opzioni qui, puoi impostare Apache per usare Account di sistema locale e selezionare la casella di controllo PER CONSENTI l'interazione desktop. Se lo fai, devi impostare Identità per MS Word su Utente interattivo .

Altrimenti, devi impostare entrambi sullo stesso utente (idealmente l'utente che ha effettuato l'accesso) come mostrato in figura.

Bene, dovrai eseguire " MMC -32 " (prompt dei comandi) per avviare MMC a 32 bit e quindi aggiungere Servizi componenti (menu File > Aggiungi / Rimuovi snap-in)

quindi segui una di queste istruzioni:

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

Questo succede anche su Vista con UAC abilitato. Potresti provare a impostare l'identità DCOM come account amministratore e testarlo di nuovo.

Di recente ho anche iniziato a riscontrare questo problema su una scatola di XP che cercava di aprire le cartelle di lavoro in Excel tramite i servizi di interoperabilità, ma non ho ancora trovato una soluzione alternativa. Io stesso vorrei qualsiasi altra intuizione che la comunità potesse essere in grado di gettare là ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top