9
votes

Désactiver l'invite de débogage sur l'accident d'application

question: Je dois désactiver l'invite de débogage du crash de l'application de la console.

arrière-plan: Nous avons une application qui synchronise une information avec un tiers qui se bloque en raison de problèmes de connectivité avec la tierce partie à certains moments de la journée. Nous n'avons pas accès au code source pour piéger l'erreur correctement, donc je n'ai que besoin de l'application pour échouer et réessayer. J'ai une autre application qui surveille notre outil de synchronisation pour s'assurer qu'il est en cours d'exécution.

Lorsque les applications de synchronisation se bloque, une invite de débogage nécessite une interaction des utilisateurs. Parce que cela reste à l'écran, l'application ne cesse jamais de fonctionner. En conséquence, la "santé Vérifiez "ne sait jamais de l'échec.

J'ai fait cela il y a environ 2 ans, mais pour la vie de moi, je ne me souviens pas de l'article ou du chemin de registre nécessaire.

merci, Brian

OS: Windows 2003 Server Type d'application: Application de console .NET 3.5


Correction: Trouvé par: John Knoeller

Supprimer les clés suivantes

HKEY_LOCAL_MACHINE \ LOGICIEL \ Microsoft \ Windows NT \ Courroversion \ Adebebug \ Debugger HKEY_LOCAL_MACHINE \ LOGICIEL \ Microsoft \ .NetFramework \ dbgmanageddebugger


2 commentaires

La communauté wiki a accepté la réponse sur Stackoverflow.com/questions/3561545/... est également une ressource très utile.


Similaire: Stackoverflow. com / questions / 735170 / ...


3 Réponses :


10
votes

Peut-être cela?

Comment: Activer / Désactiver le débogage juste-temps

Les clés de registre sont xxx


2 commentaires

EXACTEMENT!! Merci! Remarque: Faites défiler jusqu'à la voie du registre si vous n'avez pas VS installé HKEY_LOCAL_MACHINE \ LOGICIEL \ Microsoft \ Windows NT \ CurrentVersion \ Adedebug \ débogueur HKEY_LOCAL_MACHINE \ LOGICIEL \ Microsoft \ .NetFramework \ dbgmanag eddebugger


Le lien est mort, il serait préférable de fournir une réponse et non seulement un lien (voir meta.stackexchange.com/a/8259 < / a>).



2
votes

la solution de John en tant que fichier .reg (nous devions la mettre à la fois sur un groupe de serveurs de construction): xxx


0 commentaires

6
votes

Suppression des touches entières semble trop "marteau" approche.

premier , on peut utiliser des fonctions de l'API Windows Seterormode Settheaderrormode . Ils peuvent également être pinces à partir d'une application .NET aussi.

Les signatures associées pour Pinvoke sont les suivantes: xxx


secondaire Il existe une solution de registre plus spécifique depuis Vista:
Excluant uniquement cette application d'être débogué. Voir ceci:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb204634 (v = vs.85) .aspx

Copy-coller:

à l'exclusion d'une application du débogage automatique

La procédure suivante explique comment exclure une application à partir d'une application de débogage automatique après la valeur automatique sous le Adebug La clé a été définie sur 1.

-> Pour exclure une application du débogage automatique Allez à la clé de registre suivante: HKEY_LOCAL_MACHINE \ LOGICIEL \ Microsoft \ Windows NT \ CurrentVersion \ AEDEBUG
Ajouter une valeur REG_DWORD au AutoexclusionList SUBLY, où le nom est le nom du fichier exécutable et la valeur est 1.
Par défaut, le gestionnaire de fenêtres de bureau (DWM.exe) est exclu du débogage automatique car sinon une impasse système peut se produire si DWM.exe cesse de répondre (l'utilisateur ne peut pas voir l'interface affichée par le débogueur, car DWM. EXE ne répond pas et Dwm.exe ne peut pas terminer car il est détenu par le débogueur).
Windows Server 2003 et Windows XP: La sous-clé AutoexclusionList n'est pas disponible; Vous ne pouvez donc exclure aucune application, y compris DWM.exe, du débogage automatique.

Les entrées de registre d'Adebug par défaut peuvent être représentées comme suit:
HKEY_LOCAL_MACHINE LOGICIEL Microsoft Windows NT Version actuelle Adebug Auto = 1 Autoexclusionlist Dwm.exe = 1


1 commentaires

+1, nécessitant un changement de clé de registre sur chaque machine que le programme est en cours d'exécution serait frustrant. Beaucoup mieux avec un appel API!