La fonte non è stata trovata, ma alcuni o tutti i log degli eventi non possono essere cercati

Sto ottenendo la seguente eccezione. Ho dato il pieno controllo dell’account Asp.net su Eventlogs nella modifica del registro.

[SecurityException: la fonte non è stata trovata, ma alcuni o tutti i log degli eventi non possono essere cercati. Log inaccessibile: sicurezza.]

System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly, Boolean wantToCreate) +664 System.Diagnostics.EventLog.SourceExists(String source, String machineName, Boolean wantToCreate) +109 System.Diagnostics.EventLog.SourceExists(String source) +14 Microsoft.ApplicationBlocks.ExceptionManagement.DefaultPublisher.VerifyValidSource() +41 

Immagino che questo sia dovuto ad alcuni problemi di configurazione sul server?

EventLog.SourceExists enumera attraverso le sottochiavi di HKLM\SYSTEM\CurrentControlSet\services\eventlog per vedere se contiene una sottochiave con il nome specificato. Se l’account utente con cui il codice è in esecuzione non ha accesso in lettura a una sottochiave a cui tenta di accedere (nel tuo caso, la sottochiave Security ) prima di trovare la sorgente di destinazione, verrà visualizzata un’eccezione come quella che hai descritto.

L’approccio abituale per la gestione di tali problemi consiste nel registrare le origini dei registri eventi al momento dell’installazione (con un account amministratore), quindi presumere che esistano in fase di runtime, consentendo a qualsiasi eccezione risultante di essere considerata imprevista se non esiste effettivamente un’origine del registro eventi di destinazione. in fase di esecuzione.

Aveva la stessa eccezione. Nel mio caso, ho dovuto eseguire Command Prompt con diritti di amministratore.

Dal menu Start, fai clic con il tasto destro su Prompt dei comandi, seleziona “Esegui come amministratore”.

Per me questo errore era dovuto al prompt dei comandi, che non era in esecuzione con privilegi di amministratore. È necessario fare clic con il tasto destro sul prompt dei comandi e dire ” Esegui come amministratore “.

È necessario il ruolo di amministratore per installare o disinstallare un servizio.

Avviare la riga di comando dello sviluppatore “Come amministratore”. Questo account ha pieno accesso al registro di sicurezza

Non ha funzionato per me.

Ho creato una nuova chiave e valore di stringa e sono riuscito a farlo funzionare

 Key= HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\\ String EventMessageFile value=C:\Windows\Microsoft.NET\Framework\v2.0.50727\EventLogMessages.dll 

Per me ha appena funzionato iisreset (esegui cmd come amministratore -> iisreset). Forse qualcuno potrebbe fare un tentativo.

Se si sta eseguendo una nuova installazione del sito Web SenseNet TaskManagement su IIS (dal codice sorgente, non da WebPI), verrà visualizzato questo messaggio, in genere correlato alla comunicazione SignalR. Come sottolinea @ nicole-caliniou, è dovuto a una ricerca chiave nel Registro di sistema che non riesce.

Per risolvere questo problema con SenseNet TaskManagement v1.1.0, trovare innanzitutto il nome della chiave di registro nel file web.config. Di default è “SnTaskWeb”.

    

Aprire l’editor del registro, regedit.exe e accedere a HKLM\SYSTEM\CurrentControlSet\Services\EventLog\SnTask . Fare clic con il tasto destro del mouse su SnTask e selezionare New Key e nominare la chiave SnTaskWeb per la configurazione mostrata sopra. Quindi fare clic con il pulsante destro del mouse sull’elemento SnTaskWeb e selezionare New Expandable String Value . Il nome dovrebbe essere EventMessageFile e il valore dovrebbe essere C:\Windows\Microsoft.NET\Framework\v4.0.30319\EventLogMessages.dll .

Parole chiave: signalr, sensenet, regedit, permessi