Che cosa potrebbe causare QUALSIASI .NET applicazione crash subito… tranne un progetto che ho creare ed eseguire il Debug di Visual Studio?

Il mio software di recente ha distribuito un cliente che ha detto che l’applicazione andava in crash subito dopo l’inizio. Dopo qualche iniziale di debug, il cliente mi ha fornito l’accesso remoto a uno dei computer che era in grado di eseguire l’applicazione. ho trovato che l’incidente non era specifica per la mia applicazione. Qualsiasi applicazione che dipende da quello .NET framework è caduto immediatamente.

Convenientemente, Visual Studio 2008 è stato installato così ho creato una rapida applicazione “hello world” su di esso e cliccato il Debug. L’applicazione ha funzionato bene. , Ma poi quando ho provato a eseguire il file binari generati in /bin/Debug/HelloWorld.exe directory al di fuori di visual studio si è schiantato.

Elenco delle cose che ho sempre cercato (AGGIORNATO):

  • Ho controllato che “Tutti” ha Letto&autorizzazioni di Esecuzione per c:\Windows.
  • Per verificare che il problema era con l’ .NET Framework (e non la mia applicazione), ho tentato di scaricare la Vernice .NETTO al computer. Il programma di installazione di frontend è caduto nello stesso modo.
  • Eseguito un ripristino di .NET framework come indicato in http://support.microsoft.com/kb/908077 (Ragazzo era questo divertente e tempo). Senza fortuna.
  • Installato .NET 3.5 SP1 (prima appena avuto .NET 3.5) Nota: la mia applicazione è destinata 2.0, per cui ho fatto questo più come un tiro lungo… ma ho imparato durante il processo .NET 3.5 SP1 aggiornato anche il sottostante quadri.
  • Corse Aaron Stebner s .NET Setup Strumento di Verifica. Questo strumento ha indicato che .NET è stato installato con successo. (Non mi ricordo se ho controllato tutte le versioni, ma almeno 2.0 lavorato).
  • Testato alcuni mini hello world applicazioni che sono stati mirati per .NET 2.0 e .NET 3.5 e sia caduto nello stesso modo.
  • Cercato di lancio .NET applicazioni con windbg cmd line. Facendo questo mi ha permesso di richiamare la mia semplice hello world applicazioni. Così, semplici .NET ciao mondo funziona quando viene richiamato da windbg o lanciando via il debug in visual studio… ma non se provo ad eseguirlo autonomo.

Ho creato un file di dump utilizzando WinDbg. Non è stata un’esperienza che mi ha rivelato.

FAULTING_IP:  mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010        test    byte ptr [eax+10h],10h

EXCEPTION_RECORD:  0012f710 -- (.exr 0x12f710) ExceptionAddress: 79f4ff9d (mscorwks!PEImage::GetEntryPointToken+0x00000021) ExceptionCode: c0000005 (Access violation)   ExceptionFlags: 00000000 NumberParameters: 2    Parameter[0]: 00000000    Parameter[1]: 00000010 Attempt to read from address 00000010

FAULTING_THREAD:  00000b44
PROCESS_NAME:  MyProcess.exe
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid    
DETOURED_IMAGE: 1    
NTGLOBALFLAG:  0    
APPLICATION_VERIFIER_FLAGS:  0    
MANAGED_STACK: !dumpstack -EE OS Thread Id: 0xb44 (0) Current frame:  ChildEBP RetAddr  Caller,Callee

EXCEPTION_OBJECT: !pe cb10b4 Exception object: 00cb10b4 Exception type: System.ExecutionEngineException Message: <none> InnerException: <none> StackTrace (generated): <none> StackTraceString: <none> HResult: 80131506    
MANAGED_OBJECT_NAME:  System.ExecutionEngineException    
CONTEXT:  0012f72c -- (.cxr 0x12f72c) eax=00000000 ebx=00000000 ecx=00000000 edx=0000000e esi=001a1490 edi=00000001 eip=79f4ff9d esp=0012f9f8 ebp=0012fa1c iopl=0         nv up ei pl zr na pe nc cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010246 mscorwks!PEImage::GetEntryPointToken+0x21: 79f4ff9d f6401010        test    byte ptr [eax+10h],10h     ds:0023:00000010=?? Resetting default scope    
READ_ADDRESS:  00000010     
FOLLOWUP_IP:  mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010        test    byte ptr [eax+10h],10h    
BUGCHECK_STR:  APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN    
PRIMARY_PROBLEM_CLASS:  NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN
    DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN    
LAST_CONTROL_TRANSFER:  from 79ef02b5 to 79f4ff9d    
STACK_TEXT:   79f4ff9d mscorwks!PEImage::GetEntryPointToken+0x21 79ef02b5 mscorwks!PEFile::GetEntryPointToken+0xa0 79eefeaf mscorwks!SystemDomain::ExecuteMainMethod+0xd4 79fb9793 mscorwks!ExecuteEXE+0x59 79fb96df mscorwks!_CorExeMain+0x15c 7900b1b3 mscoree!_CorExeMain+0x2c 7c817077 kernel32!BaseProcessStart+0x23    

SYMBOL_STACK_INDEX:  0    
SYMBOL_NAME:  mscorwks!PEImage::GetEntryPointToken+21    
FOLLOWUP_NAME:  MachineOwner    
MODULE_NAME: mscorwks    
IMAGE_NAME:  mscorwks.dll    
DEBUG_FLR_IMAGE_TIMESTAMP:  471ef729    
STACK_COMMAND:  .cxr 0012F72C ; kb ; dds 12f9f8 ; kb    
FAILURE_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN_80000003_mscorwks.dll!PEImage::GetEntryPointToken    
BUCKET_ID:  APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN_DETOURED_mscorwks!PEImage::GetEntryPointToken+21    
WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/MyProcess_exe/2_4_4_39/4a8a192c/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1

Followup: MachineOwner

Edit 1:L’evento registrare i dettagli di questo errore di dire che è un
.NET Runtime versione 2.0.50727.3053 – Fatale Motore di Esecuzione di Errore (7A097706)(80131506).

Che cosa potrebbe causare QUALSIASI .NET applicazione crash subito... tranne un progetto che ho creare ed eseguire il Debug di Visual Studio?

(fonte: blakerobertson.com)

Edit 2 (10-7-09): Questo problema è ancora attivo.

Modifica 3 (3-29-10): Questo aggiornamento è per far sapere a tutti che non sono mai riuscito a risolvere il problema. Il cliente che la macchina questo è stato perso interesse nel risolvere e appena ripristinato la macchina :(. Grazie per tutti i contributi, anche se.

  • È un po ‘ crudele, ma sono felice di seguire questa domanda. Veramente interessante. Buona fortuna!
  • Non hai ancora il file di dump disponibili, e non si dispone di un mezzo di condivisione?
  • Hai mai ottenere questo risolto? Qual è stato il problema?
  • No purtroppo non ho. Cliente perso interesse.
InformationsquelleAutor blak3r | 2009-09-22



14 Replies
  1. 8

    Basato sul vostro windbg uscita sembra che qualcuno ha iniettato una DLL nel processo al processo di lancio, e che l’iniezione non è progettato per qualsiasi versione di mscorwks che è stato caricato. Se questo è un casual workstation (ad es. segretario) vorrei avere confiscati per MIS a controllare la presenza di malware. Se si tratta di una macchina seduto in una sala server vorrei guardare verso il cliente per eseguire il trasferimento a un’altra macchina.

    Non ho il sospetto che questo sarebbe accaduto a qualsiasi altro cliente, e in 8 anni .NETTO di sviluppo l’unica cosa che può (solo) causa il comportamento che si sta descrivendo è un tentativo di eseguire un .NET Applicazione su un sistema con una vecchia versione del framework installato (ad esempio, mancanza di supporto, i risultati in standard di debug/chiude la finestra di dialogo sulla maggior parte delle versioni di Windows) e NON è quello il problema. Questo è anche non connessi con l’Architettura del Processore, Framework Versione né SP livello, non è correlato a qualsiasi attività commerciale software AV, né alcuna rete commerciale,-software per la sicurezza.

    È chiaramente qualcosa nel codice, e non riesco a vedere che è qualcosa che si può risolvere il vostro cliente. Non conosco nessun strumento, né una serie di passaggi che è possibile utilizzare per risolvere il problema a meno di avere il cliente ri-immagine della macchina di destinazione. Prima di farlo, di nuovo, l’hanno fantasma da MIS/per potenziali malware (in particolare, il malware che non sarebbe stato distribuito attraverso il pubblico in generale.)

    Per la relativa lettura: http://research.microsoft.com/apps/pubs/default.aspx?id=68568

    Buona fortuna.

    • Interessante teoria… che cosa esattamente hai visto in windbg uscita che ti fa pensare questo? Il mio cliente è un’università e il software è installato sulla maggior parte dei computer del campus utilizzando Alteris. Così, sembra improbabile che distribuiscono malware di un insieme di computer.
    • Altiris non impedire l’installazione (o di sviluppo) di malware. Sto solo facendo un best-guess dal valore nullo ptr problema è generata durante l’inserimento del processo, l’unica cosa che so che non sono male metodo riscrive per un costruttore (o simili). Di nuovo, l’ipotesi migliore. Dal momento che questo è destinato ad essere un ambiente controllato si può controllare questa macchina rispetto ad un altro fantasma macchina per determinare che cosa binario differenza c’è, dipende da quanto è necessario per risolvere il problema, suppongo.
    • Immagino che la ragione in esecuzione .NET eseguibili tramite WinDbg/VS.NET funziona è perché queste applicazioni avviare direttamente il .NET runtime, mentre, se si sta eseguendo un .NET app tramite Explorer, Explorer è di guardare all’interno dell’EXE per determinare se si tratta di un Win32 o .NET eseguibile, e prendere l’azione appropriata (vedere il kernel32!BaseProcessStart voce nella traccia dello stack).
  2. 3

    Alcuni membri del nostro team hanno recentemente affrontato lo stesso problema e si scoprì che dopo la disinstallazione Embassy Trust Suite da Onda Sistema tutto tornò alla normalità. Al seguente link led per la risposta.

    http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/6e6b8496-c1f1-4fc9-bcc9-2129a6329804/

    Come parte dell’indagine sono anche imbattuti in questo MODO la domanda e mi ha chiesto di postare questo come una possibile soluzione che potrebbe aiutare gli altri.

    • +1-Come ho accennato in altri post… non ho modo di provare questo. Ma, io ti ho dato +1 dato che sei l’unica persona che ha effettivamente risolto questo problema prima.
  3. 1

    Abbiamo avuto un problema simile in una distribuzione su larga scala in tutti i casi in esecuzione la riparazione sul quadro risolto il problema vorrei fare un tentativo.

    • Che quadro fatto il ripristino… hanno 1, 2, 3.5 etc. È la versione del framework è mirata applicazione che generalmente risolto il problema o il più recente.
    • Il nostro cliente tentato di riparare seguendo la procedura descritta in questo articolo: support.microsoft.com/kb/908077. Senza fortuna.
  4. 1

    Ho avuto un problema simile un paio di mesi fa (non mi ricordo il codice di errore però). Dopo aver provato molte cose, le seguenti risolto il problema (per quanto mi ricordo):

    La rimozione di tutti i file temporanei nel .net cartella temporanea (e anche controllare i permessi della cartella)

    • Ho studiato le cartelle temporanee per .Rete, perché non l’avevo mai sentito una cosa del genere e ha scoperto che ci sono i file temporanei, per ASP.NET siti… La directory è della forma: “%windir%\Microsoft.NET\Framework\ <VERSIONE> \Temporary ASP.NET File” Ma, per quanto riguarda le applicazioni Desktop non ho mai sentito di una cosa del genere. Era il tuo problema con un ASP.NET sito o un’applicazione desktop?
    • Era asp.net applicazione. Mi dispiace perdere il contesto
    • Anche se estranei, che potrebbero aiutare gli altri. Distribuzioni di ClickOnce può avere bisogno di essere puliti manualmente se una distribuzione va male, ma in genere un’applicazione non è praticabile all’interno di un debugger quando questo accade.
  5. 1

    Avuto lo stesso problema ed è stato risolto utilizzando la creazione guidata Pubblicazione. Ecco come ho trovato la macchina di destinazione non dispone di Visual Basic Powerpack 3.0 pacchetto installato. Dopo averlo installato, funziona come un fascino.

    • Non ho più accesso alla casella che questo problema si è verificato. Grazie per il tuo suggerimento. Se questo aiuta qualcun altro fatemelo sapere e cercherò di segnare la risposta corretta. Sarebbe probabilmente aiutare se si è approfondito il concetto di “pubblicazione guidata”. Non ho familiarità con che quindi sto assumendo altri non saranno.
  6. 1

    Di recente ho avuto lo stesso problema e ha fatto questi passaggi Microsoft .NET Applicazione si Blocca e corretto la .NET app crash senza scopo

    • grazie ATK, Se mai succede di nuovo cercherò di dare il vostro suggerimento a provare.
    • Questo è in realtà un buon suggerimento, ma voglio sottolineare questo si traduce in un’eccezione di sicurezza. Sarebbe un altro crash.
  7. 0

    Suona come lei stesso ha una “fun” c’. Non ho la più pallida idea, ma qui è il mio karma-puttane stab-in-the-dark suggerimenti comunque.

    1) In aggiunta alle regolari autorizzazioni utente assegnato da Windows, vi è anche un altro set di impostazioni di sicurezza in particolare per il .NET framework. Se avete l’ .NET SDK installato, cercare “Microsoft .NET Framework Configuration” strumento nel Pannello di Controllo (sotto Strumenti di Amministrazione). Vedere se le impostazioni sono diverse dal vostro dev macchina.

    2) sto cercando di indovinare il vostro cliente è sotto il controllo di un regime al suo posto di lavoro. Vedere se voi o il vostro cliente può ottenere le mani su una nuova installazione di Windows in cui funziona il programma e, quindi, di lavorare con il suo gruppo, applicare uno dei loro requisiti (impostazioni di sicurezza, i programmi antivirus, etc.) in un tempo fino a quando il programma smette di funzionare. Un buon vecchio ultima in stato di bug hunt. Naturalmente, questo presuppone la cooperazione dal suo reparto, quindi spero che il tuo programma è importante per un dirigente da qualche parte.

    • Ho provato il Tool di Configurazione… In “Criteri di Protezione”, ho cliccato su “Ripristina Tutti i Livelli politici”, ma che non aiuta purtroppo. Inoltre, avevo il sospetto che .NETTO sarebbe meglio dare un messaggio di errore se è una impostazione di sicurezza. Per il tuo secondo suggerimento, che è un ultima spiaggia… è strano b/c funziona nell ‘ 80% dei computer dei clienti e sono tutti gestiti dalla stessa per la gestione del desktop utilità… quindi, in teoria, gli ambienti dovrebbero essere identici, per cui l’applicazione non funziona correttamente.
    • Non avevi detto che funziona sulla maggior parte dei computer – ho pensato che non funziona su qualsiasi computer presso il cliente. In quel caso, hai controllato i livelli della patch del sistema operativo e la .NET sulla mancanza di macchine?
    • Mi è stato detto che erano tutti i computer sono stati identici. Ho appena controllato ed è 3.5, ma non sp1… sto installando adesso. La mia applicazione è stata progettata per la 2.0 quindi non sono sicuro se quello che conta.
    • 3.5 sp1 non ha aiutato, e ci è voluto molto tempo per l’installazione.
  8. 0

    Non c’è pallottola d’argento fix e non credo sia un problema di autorizzazioni.

    Qui è quello che vorrei provare

    1. Se è una macchina a 64 bit provare a passare a 32 bit mode ho visto questo con 32 bit dll cercando di eseguire in 64 bit.
    2. Creare un nuovo sito web sul server ed eseguire aspnet_regiis su di esso.
    3. Disinstallare e reinstallare il 2.0 e 3.5 quadri. besure ed eseguire aspnet_regiis quando completa
    • Non sono sicuro se IIS è ancora installato. La mia domanda è un’applicazione desktop. Sto riuscendo a vedere perché aspnet_regiis mi avrebbe più sapere che cosa il problema è.
    • E ‘ un buon punto per verificare se è a 64 o 32 bit, però. A seconda delle opzioni del compilatore e costruire la macchina, si può essere mirata a un particolare sistema.
  9. 0

    Paio di suggerimenti da provare:

    • Solo per assicurarsi che non è la vshost.exe problema, vorrei provare a eseguire MyProcess.exe sotto il cdb/windbg e vedere il comportamento.
    • Il problema sembra una Lettura AV e se l’applicazione funziona correttamente con un debugger, vorrei provare a riparare il mio .Netto di installazione, nel caso ci potrebbe essere una possibile corruzione nel modo in OS handsover esecuzione di un .Net assembly mscorwks.dll.
    • Io sono in grado di ottenere di più quando mi lancio attraverso windbg. Sono in grado di lanciare un semplice hello world app che modo. Così, sto cercando di riparare.
  10. 0

    Lanciarlo con WinDbg. Utilizzando Figlio di Sciopero, si dovrebbe essere in grado di vedere esattamente il motivo per cui è caduto. Ci può essere un basso livello di assemblaggio errore di caricamento. Devo correre giù per problemi simili utilizzando WinDbg in passato.

    • Ho provato windbg. Ecco come ho creato il dump di informazioni che è elencato nella domanda :P. La .NET motore di esecuzione è fatalmente schiantarsi. Non è specifica per la mia applicazione. Non ero davvero in grado di ottenere qualcosa di fuori di tali informazioni. Qualsiasi .NET applicazione si blocca per esempio ho provato a scaricare la Vernice .In rete sul computer del cliente ed è fallita.
    • Ho capito che dopo che ho postato. Può rompere aprire stack frame in cui l’eccezione è accadendo. Sembra quasi che non credo che ci sia un punto di accesso gestito che non avrebbe alcun senso. Si può replicare questo su qualsiasi altro computer? Fare applicazioni native, che chiamano in CLR lavoro? Hanno cercato esplicitamente di targeting x86? Steve
  11. 0

    Assicurarsi che l’utente non è lanciare l’applicazione da una condivisione di rete. Per impostazione predefinita, .Net genera un’eccezione di protezione quando si tenta di avviare un’applicazione da una fonte non attendibile.

    È possibile modificare questo comportamento utilizzando il sistema di Microsoft .Net Framework Configuration utility in Strumenti di Amministrazione.

    • Grazie, ma non è questo il problema. Tutti .NETTO dipendente applicazioni hanno questo problema. Ho provato Paint.NET e poche altre che ho scritto.
    • Questi sono predefinito del computer, le impostazioni di sicurezza del .Net framework, quindi il mio punto vale per tutti .Net applications, non la tua in particolare.
    • Ho capito. Grazie.
  12. 0

    Dal momento che non accade su ogni macchina client, potrebbe essere la RAM? Si può riavviare il cattivo macchina ed eseguire lo strumento di diagnostica memoria?

    Potrebbe DEP sono state accese per questa macchina a un certo punto nel passato? Non si otterrebbe una .Net eccezione per questo tipo di protezione, perché la vostra app semplicemente non ottenere, in modo da ci sono poche possibilità di lanciare un messaggio di errore.

    • La Ram difettosa… Non per un sacco di motivi. Non sono sicuro su DEP. Chiederò.
  13. 0

    Potrebbe essere questo link potrebbe aiutarti a risolvere il tuo problema Correggere L’Errore “.NET Runtime versione 2.0.50727.3053 – Motore di Esecuzione Irreversibile Errore”.NET].

    Quale sistema operativo (Windows XP, Vista, etc.) non i vostri clienti pc ha installato?

    Hai provato a disinstallare l’ .NET Framework (non riparazione) completamente e poi reinstallato?

    • Il suggerimento fornito da che link era quello di utilizzare Ripristino configurazione di Sistema ad un punto precedente, che non è davvero un’opzione. So che il problema è svolta su WinXP SP3 non so se capita a vista. Non sono sicuro di cosa hanno fatto esattamente hanno seguito i suggerimenti in support.microsoft.com/kb/908077. Sono sporgendosi verso reghosting b/c ci vuole così tanto tempo, quindi dubito che piacerebbe provare più .NET framework di riparazione.
  14. 0

    Di recente ho avuto un problema che si manifesta in modo molto simile. Si è scoperto che alcune Dll di terze parti non erano parte della mia distribuzione (ero semplicemente copiare cose dalla directory bin). Ho creato un programma che ha preso tutte le Dll e una volta erano distribuiti in modo corretto, ha smesso di cadere. È strano che era difficile fallire piuttosto che un’eccezione.

    Questo potrebbe non essere applicabile a voi dal momento che si dice che si applica a qualsiasi .NET applicazione. Forse si lavora in un vecchio file di progetto con alcuni avanzi di riferimenti?

    • Hmm… io in realtà copiare la dll mio directory bin. Così, quello che è interessante. Ma, di certo, però, non spiega come mai gli altri .NET app non funzionano né perché questo problema non è accaduto su altri computer.

Lascia un commento