Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Problema Caricamento COM
mercoledì 22 febbraio 2012 - 14.58
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 22 feb 2012 - 14:58
Ciao a tutti, ho un problema con la pubblicazione di un sito internet .net. In locale funziona tutto appena lo pubblico mi da errore. Sto creando un sito in cui mi crea un file word in base ad modello già preipostato.
Il codice è il seguente:
Dim Wrd As new Microsoft.Office.Interop.Word.Application, Doc As new Microsoft.Office.Interop.Word.Document
Dim Modello As String, NomeFile As String, i As Integer
Dim Record As String, SQL As String
Dim Tbl As String
' Dim TotRiga As Currency, Totale As Currency
Dim ReplSel As Boolean
Modello = Server.MapPath("~") & "\Lettera.dot"
On Error Resume Next 'gestione errori step by step
'cerca un'istanza di Word già aperta
Wrd = GetObject(, "Word.Application")
If Err.Number = 429 Then
'se c'è stato un errore è perchè Word non era già aperto:
'aprilo adesso
Wrd = CreateObject("Word.Application")
End If
On Error GoTo 0 'ripristina la segnalazione degli errori
'rendi visibile la finestra di Word:
Wrd.Visible = True
'attiva Word e portalo in primo piano:
Wrd.Activate()
'abilita l'opzione "Sostituisci la selezione". Se non fosse
'attiva, i campi modulo rimarrebbero all'interno del testo.
ReplSel = Wrd.Options.ReplaceSelection
Wrd.Options.ReplaceSelection = True
'Apri un nuovo documento basato sul modello:
Doc = Wrd.Documents.Add(Modello)
'attivalo e portalo in primo piano:
Doc.Activate()
'seleziona il bookmark del primo campo Nome cliente:
Doc.Bookmarks("NomeCliente1").Select()
'e sovrascrivilo con il contenuto dei campi
'Cognome e Nome:
Wrd.Selection.TypeText("PINCO" & " " & "PALLINO")
'ripristina il valore originario dell'opzione
'"Sostituisci la selezione"
Wrd.Options.ReplaceSelection = ReplSel
'avvisa l'utente che l'esportazione è terminata
Wrd.Application.WordBasic.MsgBox("Esportazione terminata", "Esportazione dati").
In Locale funziona tutto e perfettamente, appena lo pubblica mi da il seguente errore:
Recupero della class factory COM per il componente con CLSID {000209FF-0000-0000-C000-000000000046} non riuscito a causa del seguente errore: 80070005.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.
Dettagli eccezione: System.UnauthorizedAccessException: Recupero della class factory COM per il componente con CLSID {000209FF-0000-0000-C000-000000000046} non riuscito a causa del seguente errore: 80070005.
ASP.NET non è autorizzato ad accedere alla risorsa richiesta. Provare a concedere diritti di accesso alla risorsa all'identità di richiesta di ASP.NET. ASP.NET dispone di un'entità di processo di base (in genere {MACHINE}\ASPNET su IIS 5 o Network Service su IIS 6) che viene utilizzata se l'applicazione non esegue la rappresentazione. se l'applicazione esegue la rappresentazione tramite <identity impersonate="true"/>, l'identità sarà rappresentata dall'utente anonimo (in genere IUSR_MACHINENAME) o dall'utente autenticato che ha eseguito la richiesta.
Per concedere l'accesso a un file ad ASP.NET, fare clic su di esso con il pulsante destro del mouse in Esplora risorse, scegliere Proprietà e fare clic sulla scheda Protezione. Fare clic su "Aggiungi" per aggiungere l'utente o il gruppo appropriato. Evidenziare l'account ASP.NET e selezionare la casella relativa all'accesso desiderato.
In cosa sbaglio???
Grazie in anticipo.....
martinez
Profilo
| Senior Member
274
messaggi | Data Invio:
mer 22 feb 2012 - 15:16
Ciao!
nell'esempio da te citato è fondamentale che sul SERVER che ospita la tua applicazione oltre alle Office PIAs sia prensente anche la versione Office interessata ... Hai questi requisiti?
Saluti
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 22 feb 2012 - 16:07
Infatti come primo errore mi aveva dato che non trovava la versione corretta di Microsoft.Office.Interop.Word.dll. Adesso ho istallato lo stessa versione di office anche sul server.
Istallato OFFICE PIAs della versione del office ma l'errore è ancora lo stesso....
martinez
Profilo
| Senior Member
274
messaggi | Data Invio:
mer 22 feb 2012 - 17:45
>Infatti come primo errore mi aveva dato che non trovava la versione
>corretta di Microsoft.Office.Interop.Word.dll. Adesso ho istallato
>lo stessa versione di office anche sul server.
>
>Istallato OFFICE PIAs della versione del office ma l'errore è
>ancora lo stesso....
allora è semplicemente - si fa per dire :) - una questione di permessi sul server (visto che puoi accederci) lancia da esegui (da win 7 puoi scrivere il comando in cerca programmi e file):
dcomcnfg
da qui seleziona:
- Direcotry radice
- Servizi componenti
- Computer
- Computer locale
- Config DCOM
e qui cerchi il componente che ti interessa ... ehmmm qualcosa come "applicazione office word" oppure "documento office word" quindi tasto destro proprietà e nella scheda sicurezza aggiungi a tutti e tre le voci i diritti di lancio in locale ed in remoto all'utente ASPNET.
Come utlima cosa aggiungo, siccome mi ci son perso parecchie volte con tali PIA ... che se non è fondamentale e puoi aggirare l'ostacolo con altri componenti ... di risolvere diversamente.
Saluti
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 22 feb 2012 - 18:00
Ci sono delle particolarità, nella lista delle com ho trovato: Documento di Microsoft Office Word 97 - 2003, io ho istallato Office2007.
L'errore è leggermente modificato autorizzando "everyone" al controllo totale
Recupero della class factory COM per il componente con CLSID {00020906-0000-0000-C000-000000000046} non riuscito a causa del seguente errore: 80080005.
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.
Dettagli eccezione: System.Runtime.InteropServices.COMException: Recupero della class factory COM per il componente con CLSID {00020906-0000-0000-C000-000000000046} non riuscito a causa del seguente errore: 80080005.
Errore nel codice sorgente:
Durante l'esecuzione della richiesta Web corrente stata generata un'eccezione non gestita. Per informazioni sull'origine e la posizione dell'eccezione, vedere l'analisi dello stack dell'eccezione riportata di seguito.
martinez
Profilo
| Senior Member
274
messaggi | Data Invio:
mer 22 feb 2012 - 18:25
sia le PIA che Office devono essere della stessa versione ... e questa è 'ultima cosa che mi viene in mente ... poi come detto in precedenza ho lasciato perdere per ovvi motivi.
Saluti
giucorn
Profilo
| Junior Member
83
messaggi | Data Invio:
gio 23 feb 2012 - 09:46
Hai perfettamente ragione, questo legame con word è troppo vincolante, proverò a cercare un'altra strada.
empire
Profilo
| Newbie
1
messaggi | Data Invio:
lun 21 mag 2012 - 14:35
Ciao io ho il tuo stesso problema hai novità di come hai risolto ?io ci sto impazzendo da mesi..:( Grazie
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !