2012-11-17 23 views
7

Ho un componente aggiuntivo di Outlook sviluppato con VSTO 2010 che desidero scrivere alcuni registri degli eventi. Durante il debug posso farlo funzionare semplicemente facendo quanto segue:Un componente aggiuntivo di Outlook può scrivere nel registro eventi di sistema?

if (!EventLog.SourceExists(ADDIN_FRIENDLY_NAME)) 
{ 
    EventLog.CreateEventSource(ADDIN_FRIENDLY_NAME, null); 
} 
EventLog.WriteEntry(ADDIN_FRIENDLY_NAME, message, EventLogEntryType.Warning); 

Il problema è la versione del componente aggiuntivo non dispone dei diritti di amministratore per leggere il registro. Ho trovato alcuni articoli che parlavano della creazione del sorgente EventLog durante l'installazione, ma sto usando ClickOnce e non sembra che ci sia un modo per farlo. Inoltre, qualcuno ha parlato della creazione di una DLL separata e quindi chiama InstallUtil su quella DLL per creare l'origine. Questo non funziona per me, dal momento che questo richiede ancora i diritti di amministratore.

È possibile eseguire l'esecuzione del componente aggiuntivo utilizzando il livello di sicurezza di Outlook? Vedo i messaggi di Outlook nel registro eventi, quindi deve disporre di diritti sufficienti per farlo.

+2

Non è possibile creare un'origine evento senza diritti di amministratore. Quindi, devi cambiare la tua strategia e scrivere a qualcos'altro. –

+0

Grazie John, l'ho pensato come opzione, ma volevo verificare se fosse possibile eseguire il componente aggiuntivo allo stesso livello di sicurezza di Outlook. Posso sempre ricorrere alla normale registrazione dei file. – user1715925

+0

È sempre possibile provare ad accedere a un database remoto, il che rende molto più semplice la creazione di report aggregati. – SliverNinja

risposta

1

È possibile provare a eseguire il clic una volta come amministratore utilizzando la soluzione proposta in this article ma non penso che sia una buona soluzione.

Forse una soluzione migliore è quella di includere nel pacchetto di clic una volta una configurazione standard .msi che è possibile eseguire la prima volta che si installa il componente aggiuntivo. Questo MSI crea semplicemente la fonte dell'evento.

Circa la tua domanda:

E 'possibile avere la corsa aggiuntivo utilizzando il livello di sicurezza di Outlook?

Non credo che il componente aggiuntivo funzioni utilizzando un diverso livello di sicurezza ma probabilmente hai il controllo dell'account utente abilitato, quindi non puoi eseguire operazioni di amministrazione anche se sei un amministratore.

+0

Contrassegnare come risposta poiché lo ha fatto per la mia domanda. Per quanto riguarda la soluzione che ho finito di fare, ho scritto codice separato per scrivere in un file di registro di testo sotto la cartella dei documenti dell'utente corrente invece per semplicità. – user1715925