Automazione di Office tramite il servizio Windows su Server 2008

Abbiamo un servizio di Windows che gira su 2003 Server. Apre un documento Word di origine utilizzando l’Interoperabilità di parole e quindi esegue alcune operazioni con esso. Funziona allo stesso modo con file Excel e PowerPoint.

Recentemente abbiamo provato a spostare questo servizio su un computer Windows 2008 Server e ci sono dei veri problemi.

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

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

Ho letto cose su Vista e Server 2008 che non hanno più una Session0, e ho provato a modificare le proprietà di sicurezza di DCOM di Office di conseguenza, inclusa la modifica dell’id quadro dell’utente che le esegue su Integrated ma senza alcun risultato.

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

Grazie

Ho avuto problemi nell’automazione di Office da un servizio Windows in Windows Server 2008, anche se funziona correttamente 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 sembrava funzionare. È bizzarro, 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 si esegue su una macchina a 64 bit, crearne un’altra , come:

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

Inoltre, le cartelle richiedono un’authorization di scrittura per qualunque utente stia “guidando” Office.


[Modifica: URL link corretto]

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

Se stai usando Apache, potresti anche aver bisogno di seguire questi passaggi per far funzionare correttamente MS Word (insieme a tutto ilineato in altre risposte):

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

Per Apache:

Servizi-> Apache-> Fare clic destro (Proprietà) -> scheda Accesso

MS Word:

Avvia dcomcnfg.exe-> Console Root-> Servizi componenti-> Computer-> Risorse del computer-> Config DCOM-> Trova applicazione Microsoft-> ​​Clic destro (Proprietà) -> Scheda identity framework

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

Ci sono due opzioni qui, è ansible impostare Apache per utilizzare l’ account di sistema locale e selezionare la casella di controllo per consentire l’interazione desktop. Se si esegue questa operazione, è necessario impostare l’ id quadro per MS Word per l’ utente interattivo .

Altrimenti, è necessario impostare entrambi sullo stesso utente (Idealmente l’utente che ha effettuato l’accesso) come mostrato nell’immagine.

È necessario eseguire “MMC -32” (prompt dei comandi) per avviare MMC a 32 bit e quindi aggiungere Servizi componenti (menu File> Aggiungi / Rimuovi snap-in)

quindi seguire 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’identity framework DCOM come account amministratore e testarlo di nuovo.

Recentemente ho anche iniziato ad avere questo problema su una scatola XP cercando di aprire cartelle di lavoro in Excel attraverso i servizi di interoperabilità, ma non ho ancora trovato una soluzione alternativa. Io stesso vorrei avere altre intuizioni che la comunità potrebbe essere in grado di buttare là fuori …