Come posso risolvere un arresto anomalo dell’applicazione Windows durante l’avvio con codice di eccezione: 0xE0434352?

Ho creato un’applicazione .NET Windows Form in Visual Studio 2010. Ho anche creato un pacchetto di installazione / installazione corrispondente tramite Visual Studio 2010. Questo è stato creato come un’applicazione a 32 bit (x86). (Facciamo uso di controlli di Windows Form di terze parti solo a 32 bit).

Sono in grado di eseguire il pacchetto di installazione e distribuirlo correttamente ad altri ambienti Windows 7 a 64 bit e Windows XP a 32 bit. L’applicazione installata funziona bene su questi.

Tuttavia, quando tento di eseguire Windows Server 2008 R2 – 64 bit, l’applicazione si arresta in modo anomalo all’avvio. È stato installato correttamente tramite il programma di installazione senza errori.

Sembra bloccarsi durante il caricamento dell’applicazione. Ho inserito una finestra di messaggio come prima riga nell’applicazione per vedere se ha superato il caricamento. La finestra di messaggio non viene visualizzata, quindi presumo che si verifichi durante il caricamento / init dell’applicazione.

Finora non ho trovato molto da fare. Dai dettagli vedo quanto segue:

Exception Code: E0434352 

Ho pescato in giro / su Google per vedere se c’era qualcosa di ovvio, ma non ho visto nulla. Ho visto alcuni riferimenti a un ansible overflow dello stack nel CLR .

L’applicazione Windows Forms è costruita con i seguenti riferimenti:

  • DevExpress
  • Controlli Infragistics Winforms
  • DLL Oracle DataAccess
  • RabbitMQ

Qual’è il problema? Come approccio alla comprensione di questo? Come faccio a eseguire il debug per ottenere informazioni più utili?

0xE0434352 è il codice di eccezione per tutte le eccezioni .NET, quindi non ti dirà molto. Come hai ottenuto questo codice di eccezione? Il registro eventi?

La soluzione migliore è utilizzare un debugger per ottenere maggiori informazioni. Se il debugger di Visual Studio non ti aiuterà, potresti dover controllare WinDbg con SOS . Vedi qui e qui per un’introduzione. Lasciarlo rompere sull’eccezione e vedere se è ansible ottenere maggiori informazioni sul perché.

Se si sospetta che si tratti di un problema durante il caricamento degli assiemi, è ansible controllare il registro Fusion .

Se ricevi questo errore dal Visualizzatore eventi, dovresti vedere un altro evento di errore (almeno uno) dall’origine “.NET Runtime”. Guarda il messaggio di errore in quanto conterrà le informazioni di Exception .

Una spiegazione concisa per 0xE0434352 è nel post del blog Perché continuo a ricevere il codice di eccezione e0434352? così come le indicazioni per il debugging via WinDbg e cdb .

Stavo combattendo con questo giorno intero chiedendo ai miei utenti di eseguire le versioni di debug del software. Perché sembrava non aver eseguito la prima riga. Solo un incidente senza informazioni.

Poi ho capito che l’errore era all’interno del modulo InitializeComponent.

Il modo per ottenere un’eccezione era rimuovere questa linea (o commentarla):

 System.Diagnostics.DebuggerStepThrough() 

Una volta che ti sbarazzi della linea, otterrai un’eccezione normale.

Stavo ricevendo questo quando l’app è stata distribuita. Nel mio caso, ho scelto “Questa è un’applicazione di fiducia completa” nella scheda di sicurezza del progetto e l’ho risolta.

Non sono sicuro che questo aiuterà qualcuno o meno, ma dato che era un mio problema, penso che valga la pena di menzionare:

Stavo ricevendo questo errore e si è rivelato un problema con la piattaforma per la quale è stato creato l’EXE. Lo abbiamo creato per x86, e doveva essere x64, a causa di un riferimento Oracle nel progetto. Quando abbiamo apportato questa modifica, il problema è andato via. Quindi, vedi se hai conflitti simili.

Sembra che questo errore 0xe0434352 si applichi a un numero di errori diversi.

Nel caso in cui aiuti qualcuno, mi sono imbattuto in questo errore quando stavo cercando di installare la mia applicazione su una nuova installazione di Windows 10. Ha funzionato su altre macchine e sembrava che l’app inizierebbe prima di morire. Dopo molte prove ed errori, il problema si è rivelato che l’app richiedeva DirectX9. Anche se era presente una versione successiva di DirectX, doveva avere la versione 9. Spero di risparmiare a qualcuno un po ‘di frustrazione.

Per risolvere il problema per me (poiché un certo numero di applicazioni ha iniziato a lanciare questa eccezione all’improvviso, ad esempio, se CorelDraw X6 ne era una), ho disinstallato il runtime .NET 4.5 e installato il runtime .NET 4. Le due versioni non possono essere installate fianco a fianco, ma utilizzano gli stessi numeri di versione nel GAC . Ciò causa problemi in quanto alcune delle funzioni sono state ammortizzate in 4.5.

L’inferno della DLL è tornato …

Quindi .. Avevo notato nel visualizzatore di eventi che questo crash corrispondeva a un errore “System.IO.FileNotFoundException”.

Quindi ho lanciato ProcMon e ho notato che una delle DLL del programma non stava caricando vcruntime140. Quindi ho semplicemente installato il red-red vs15 e ha funzionato.

Abbiamo ricevuto questo errore quando la stringa di connessione al nostro database non era corretta. La chiave per capire questo è stato eseguire il dotnet blah.dll che ha fornito uno stacktrace che ci mostra che l’istanza del server sql specificata non è stata trovata. Spero che questo aiuti qualcuno.

Problema:

. Il codice dell’applicazione Net si interrompe prima che inizi l’esecuzione [Applicazione console o applicazione Windows]

Errore ricevuto: annullato con codice errore “E0434352”

Eccezione : eccezione sconosciuta

Scenario 1:

Quando un’applicazione è già stata eseguita, che ha utilizzato alcune delle risorse dipendenti e quelle risorse sono ancora in uso con l’applicazione eseguita, quando un’altra applicazione o lo stesso exe viene triggersto da un’altra fonte, una delle app genera l’errore

Scenario 2:

Quando un’applicazione viene avviata dallo scheduler o dai lavori automatici, potrebbe essere in stato di esecuzione in background, nel frattempo quando si tenta di triggersre nuovamente la stessa applicazione, l’errore potrebbe essere triggersto.

Soluzione:

Crea un’applicazione, quando e dove l’applicazione rilascia tutte le sue risorse non appena completata Elimina tutto il processo in background una volta chiusa l’applicazione Controlla ed evita di eseguire l’applicazione da più fonti come Processo batch, Utilità di pianificazione e strumenti esterni allo stesso tempo. Controlla le dipendenze dell’applicazione e delle risorse e pulisci il codice, se necessario.