automazione di Excel COM tramite utente interattiva smette di funzionare quando l'utente si disconnette

StackOverflow https://stackoverflow.com/questions/4234615

  •  26-09-2019
  •  | 
  •  

Domanda

ho sviluppato un'applicazione server che utilizza Excel 2007 automazione COM per convertire alcuni file xls. E 'iniziato come un servizio su un'istanza di Windows Datacenter, in esecuzione con il proprio utente, e ho dovuto modificare le impostazioni di protezione DCOM ( "lancio come utente interattivo") per farlo funzionare.

Il problema è che, quando esco (via RDP), smette di funzionare. Accedo, funziona di nuovo.

Qualcuno ha avuto lo stesso problema?

È stato utile?

Soluzione

Ok, quindi non ho potuto ottenere Excel di operare senza un utente interattivo, nessuna quantità di DCOMCNFG inganno avrebbe fatto. Così ho semplicemente configurato il login automatico per l'utente il servizio è in esecuzione (vedi http://support.microsoft.com / kb / 315231 per le istruzioni).

Questo ha l'effetto che all'avvio del server, l'utente si collegherà come una sessione di console interattiva. A differenza di sessioni RDP, questo è permanente e rende Excel felice.

Altri suggerimenti per le anime dei poveri che hanno a che fare qualcosa di simile:

  • creare la cartella C: \ Windows \ System32 [o SysWOW64] \ config \ systemprofile \ Desktop
  • assicurarsi che una stampante predefinita è configurata per l'utente viene eseguito il servizio in
  • Modifica impostazioni DCOMCNFG (MMC -32, aggiungere "Servizi componenti") di Excel per l'esecuzione utilizzando l'account interattivo
  • default cambiamento DCOM globale per consentire l'accesso locale, lancio locali e l'attivazione locale per l'utente viene eseguito il servizio in

Altri suggerimenti

Ho avuto questo problema, e ho trovato che la risposta è in realtà nel DCOM Configuration.

ho fatto quanto segue per risolvere il problema:

  1. Aprire le Proprietà Excel DCOM
  2. Vai alla scheda Identity
  3. Seleziona This User
  4. Inserisci le credenziali di chi ha accesso a Excel

Potrebbe essere necessario passare alla scheda Security e garantire l'utente che hai specificato sopra disponga delle autorizzazioni appropriate.

Dopo aver fatto questo, sono stato in grado di disconnettersi dal server, pur utilizzando le librerie Excel COM Automation.

C'è una cosa che si chiama Excel Services che dovrebbe rendere possibile l'esecuzione di Excel come un servizio utilizzando SharePoint, che consentirebbe l'esecuzione non presidiata senza nessuno registrato.

Lato server:

A) Switch "Utente interattivo" per "Questo utente" .

B) "Questo utente" funziona solo dopo che la creazione di queste cartelle :

  • C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop
  • C: \ Windows \ System32 \ Config \ systemprofile \ Desktop

C) attendere che si ... Fase B) innesca Windows per creare automaticamente:

  • C: \ Users \ Default \ Desktop

Si noti la definizione di "utente" interattivo è quello di piggybacked su tutto ciò che è attivo utente collegato al server. Così mancato lancio MS Office quando nessun utente è attivo sul server.

vale a dire., Per me, la soluzione era un ibrido delle soluzioni già proposte. Ho usato Ufficio 2013 (x86) su Win 2012R2. Il mio problema era invece con Word (per uso WordToPDF).

Dettagli di Fase B:

  • Accesso al server> Start> Esegui DCOMCNFG.EXE (per lanciare Servizi componenti)> Directory principale console> Servizi componenti> Computer> Risorse del computer> Config DCOM ...
  • Scorrere fino a “Microsoft Word 97-2003 documento” o "Microsoft Excel Application" (... vale a dire, qualunque cosa MS Office è necessario avviare) ...
  • Fare clic destro e selezionare “Proprietà”> scheda Identità> Scegli “Questo utente”> immettere le credenziali per qualche utente con accesso a MS Office sul server. (Io ho usato un utente con le autorizzazioni di amministratore.)

Dettagli di Fase C:

  • L'attesa varia da 5 minuti per durante la notte. Facoltativamente, creare questa cartella manualmente (se la cartella non esiste e che sei in una corsa per il test completo).

Se l'account che è in esecuzione EXCEL è amministratore allora questo lavoro:

Per 64 bit (x64), creare questa cartella: C: \ Windows \ SysWOW64 \ config \ systemprofile \ Desktop Per 32-bit (x86), creare questa cartella: C: \ Windows \ System32 \ Config \ systemprofile \ Desktop Altrimenti Per risolvere il problema attenersi alla seguente procedura:

  1. Accedi al tuo server come amministratore
  2. Vai su "Start" -> "Esegui" e digitare "MMC comexp.msc / 32"
  3. Passare alle proprietà di Microsoft Excel Application, sotto Identità, modificarlo per l'utente interattivo dal varo utente (che è impostato di default).
  4. Passare alle proprietà di Microsoft Office Excel 2007 Cartella di lavoro, sotto Identità, cambiarlo per l'utente interattivo dal varo utente (che è impostato di default).
  5. Vai alla scheda Security per Microsoft Excel Applicazione e selezionare Personalizza per "Esecuzione e attivazione permessi" e Aggiungi account (in cui Excel è in esecuzione) ad esso e dargli "Avvio locale" e "Attivazione locale" permesso
  6. Vai alla scheda della protezione per Microsoft Office Excel 2007 cartella di lavoro e selezionare Personalizza per "Autorizzazioni di accesso" e aggiungere account (in cui Excel è in esecuzione) ad esso e dargli "Accesso locale" permesso
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top