Domanda L'accesso al modello di oggetti Office Word tramite asp.net risulta in "non riuscita a causa del seguente errore: 80070005 Accesso negato."


Ho sviluppato un sito Web che consente agli utenti di caricare documenti di ufficio, quindi utilizza il modello di oggetto Office per convertire il documento in un file HTML che viene quindi visualizzato in un iFrame.

Ovviamente ho incluso i riferimenti a Office.interop.word e il sito funziona perfettamente con la mia macchina di sviluppo. Quando l'ho caricato sul mio server di produzione, il sito funziona bene finché non provo a caricare un documento. Inizialmente ho avuto un errore simile a quello che diceva "Oggetto COM non registrato". Mi sono reso conto che Word non era installato sul mio server di produzione. Così ho installato la parola e ora quando il server tenta di accedere alla parola oggetto modello, ricevo il seguente errore:

Recupero del factory di classe COM per componente con CLSID {000209FF-0000-0000-C000-000000000046} non riuscito a causa del seguente errore: 80070005 Accesso negato. (Eccezione da HRESULT: 0x80070005 (E_ACCESSDENIED)) 

Ho cercato il registro per il CLSID corrispondente e ho trovato una cartella corrispondente. Ho aggiunto il controllo completo all'account IUSR_ e, a causa della persistenza dell'errore, ho infine aggiunto il controllo completo a "tutti" e ho assicurato queste autorizzazioni ereditate nel resto della cartella. Ho quindi aggiunto il controllo completo a IUSR_ e alla fine ho aggiunto il controllo completo a "tutti" alla mia cartella di Microsoft Office.

io non so quali altre autorizzazioni concedere e dove per fare in modo che l'errore "Accesso negato" vada in errore.  Devo concedere loro nel posto sbagliato, perché per quanto ne so non posso essere più permissivo di "Everyone" "Full Control".

Qualcuno può chiarire?


44
2017-08-13 13:10


origine


risposte:


Questo ha funzionato per me:

  1. Nella riga di comando put DCOMCNFG
  2. Servizi componenti -> Computer -> Risorse del computer -> Config DCOM
  3. Trova "Documento Microsoft Word 97 - 2003" (Se manca, controlla se il tuo Word è anche a 64 bit (se il tuo Windows è) se non viene eseguito mmc comexp.msc /32 invece di DCOMCNFG sul passaggio 1 come suggerito da Darkseal  Qui)
  4. Tasto destro -> Proprietà
  5. Vai a scheda Sicurezza e modifica i pulsanti di opzione "Personalizza" in modo che IIS_IUSRS possa disporre dei diritti per l'avvio e l'accesso
  6. Vai a Tab Identity e scegli "L'utente interattivo"
  7. Applica le modifiche e riprova
  8. Se tutto questo fallisce, vai anche alla scheda "Generale" e nel menu "Livello di autenticazione" seleziona "Nessuno".

28
2017-10-10 09:02



Ok, ho risolto questo problema con questi passaggi:

  1. Nella riga di comando, inserisci DCOMCNFG
  2. Espandere Directory principale> Servizi componenti> Computer, fare clic con il tasto destro del mouse su Risorse del computer, quindi selezionare Proprietà
  3. Nella scheda COM Security> Autorizzazioni di avvio e attivazione Fare clic su Modifica impostazioni predefinite
  4. Aggiungi l'utente (Es. IIS_IUSRS) o il servizio
  5. Seleziona Consenti avvio locale e attivazione locale

Quindi Excel, Word e altre applicazioni possono funzionare, buona fortuna.


58
2017-07-26 16:56



Cerca nel Visualizzatore eventi, in Registri di Windows, Sistema, sul computer server in cui è installato Word. Vede un evento registrato che legge qualcosa di simile a:

L'autorizzazione predefinita della macchina   le impostazioni non concedono l'attivazione locale   autorizzazione per il server COM   applicazione con CLSID   {148BEE7F-6123-41EE-8CCA-E390902BD0D8}   all'utente SomeMachine \ SomeUser SID   (S-1-5-21-483881670-2168941642-1987552629-1003) dall'indirizzo LocalHost (Utilizzo di LRPC).   Questo permesso di sicurezza può essere   modificato utilizzando i Servizi componenti   strumento amministrativo.

In questo caso, esegui DCOMCNFG.EXE e vai a Servizi componenti, Computer, Risorse del computer (o qualsiasi altro nome), Config DCOM (e puoi solo rispondere "No" se ti chiede se vuoi correggere qualcosa) e se il registro eventi il messaggio è per un applicazione, quindi trovarlo con il nome nel messaggio del registro eventi, qui per nome dell'elemento, e se il messaggio del registro eventi è per un CLSID (come nell'esempio precedente), trovarlo dal CLSID "{148B ...}" (che è solo un CLSID casuale che ho incollato - probabilmente corrisponderà al tuo 000209FF ... sopra), e seleziona Altre azioni ... Proprietà, nella scheda Sicurezza.

Qui puoi selezionare [x] Personalizza e poi Modifica, per aggiungere l'autorizzazione per l'account utente appropriato per attivare e accedere all'applicazione o alla classe DCOM richiesta.

È solo una supposizione, ma provalo, o qualcosa del genere (cioè concedendo l'accesso al CLSID tramite DCOMCNFG).


11
2017-08-25 15:06



Ho avuto i miei momenti difficili a comprenderlo usando la risposta accettata, perché il Microsoft Word 97 - Documento 2003 il record non è stato elencato tra gli elementi di configurazione DCOM. Ho trovato la soluzione in questo post sul blog di Technet, dove hanno correttamente spiegato il problema:

È importante notare che se si installa Microsoft Office a 32 bit   un computer a 64 bit, potrebbe essere necessario utilizzare il gestore di configurazione DCOM a 32 bit   per visualizzare i programmi, a seconda del sistema operativo.

Sui sistemi operativi x64 da Windows XP a Windows Server 2008, il   La versione a 64 bit di DCOMCNFG.EXE non configura correttamente a 32 bit   Applicazioni DCOM per l'attivazione remota. Questo comportamento provoca   componenti che devono essere attivati ​​da remoto invece di essere   attivato localmente. Questo comportamento non si verifica in Windows 7 e   Windows Server 2008 R2 e versioni successive.

Ref .:    http://msdn.microsoft.com/en-us/library/windows/desktop/ms678426(v=vs.85).aspx

E anche suggerito di usare il seguente comando da riga di comando (invece di DCOMCNFG) come soluzione efficace:

mmc comexp.msc /32

Quali forze caricano il gestore di configurazione DCOM a 32 bit invece di quello a 64 bit e consentono di eseguire i passaggi descritti all'interno della risposta accettata. Se ancora non funziona, l'articolo spiega anche una serie di altri possibili soluzioni.

Per ulteriori informazioni su questo argomento, puoi anche leggi questo post.


4
2018-05-02 11:34



Se non riesci a trovare l'applicazione Microsoft Word in DCOM

Su un sistema a 64 bit con Office a 32 bit, prova questo:

  1. Elemento dell'elenco
  2. Inizio
  3. Correre
  4. MMC-32
  5. File
  6. Aggiungi Rimuovi snap-in
  7. Servizi componenti
  8. Inserisci
  9. ok
  10. Radice di console
  11. Servizi componenti
  12. computers
  13. Il mio computer
  14. Config DCOM

dopo di che

  1. Trova "Documento Microsoft Word 97 - 2003" (se mancante, controlla se la tua Parola è anche a 64 bit (se il tuo Windows è))
  2. Tasto destro -> Proprietà
  3. Vai a scheda Sicurezza e modifica i pulsanti di opzione "Personalizza" in modo che IIS_IUSRS potrebbe disporre dei diritti per l'avvio e l'accesso
  4. Vai a Tab Identity e scegli "L'utente interattivo" Applica le modifiche e prova ancora
  5. Se tutto questo fallisce, vai anche alla scheda "Generale" e in "Autenticazione" Livello "seleziona" Nessuno ".

1
2018-04-18 16:01