10
votes

Comment savoir que ce processus s'est écrasé

dans mon application de console, j'ai un code qui ressemble à xxx

Ça fonctionne bien et attend jusqu'à ce que MSSQLEXecutor.exe termine son travail, puis après cela L'application continue.

Mon problème est que parfois MSSQLEXecutor.exe Crashes et Windows par défaut affichent une boîte de dialogue pour mettre fin au programme. À ce moment-là, ma demande attendra pour toujours que l'utilisateur clique sur le bouton Fermer.

Je veux éviter cela parce que mon application va fonctionner en tant que service sans interaction utilisateur.

 après cela, je veux emménager whit mon application


5 commentaires

Est mssqexecutor votre application? Si oui, je recommanderais Fixer la raison pour laquelle il se bloque au lieu de cacher le problème.


@DBM Malheureusement non, sqlexecutor n'est pas mon application et je ne peux pas le réparer.


Pouvez-vous contacter le vendeur et leur dire de réparer leur application cassée, alors?


Pouvez-vous utiliser quelque chose comme PTFB ?


@adOpilot alors vous pouvez désactiver le Dr Watson. Consultez ma réponse. Nous avons eu le même problème.


4 Réponses :



0
votes

Si vous ne voulez pas bloquer en attente du processus de fin, n'appelez pas processus.WaitForexit (). Quel est l'objectif de le faire? Si vous avez juste besoin de savoir quand il se termine, inscrivez-vous pour le processus. Dans le processus.End.exite, vous pouvez vérifier le processus.exitCode pour savoir si cela s'est terminé à cause d'un crash ou non.


0 commentaires

6
votes

Il s'agit d'un problème fréquent en dehors des processus extérieurs. De ici je suggérerais de définir une valeur de délai d'attente maximale pour cette application. xxx


0 commentaires

7
votes

La boîte de dialogue empêche que le processus existe.

  1. si mssqexecutor est votre application que vous devriez résoudre le problème. Mais vous pouvez atteindre l'objectif (cacher la boîte de dialogue). Poignée Application.threadException et appdomain.CurrentDomaine.unhandleXception XXX

  2. si MSSQExecutor n'est pas votre application, vous pouvez désactiver le Dr. Watson

    dr. Watson est un débogueur d'applications inclus avec le système d'exploitation Microsoft Windows.

    • Cliquez sur Démarrer, cliquez sur Exécuter, tapez regedit.exe dans la zone Ouvrir, puis cliquez sur OK.
    • localiser puis cliquez sur la clé de registre suivante:

      HKEY_LOCAL_MACHINE \ LOGICIEL \ Microsoft \ Windows NT \ CurrentVersion \ Adedebug
    • Cliquez sur la touche AEDEBUG, puis cliquez sur Exporter un fichier de registre dans le menu Registre.
    • Supprimer la clé AEDEBUG.

      plus infromation


3 commentaires

Intéressant. Et si le Dr Watson n'est pas activé, le processus mourra, comme d'habitude? Et cela signifie-t-il le processus.WaitForexit () arrêtera de blocage?


FYI Je cherche si cela résoudra un problème que je rencontre; Cela ressemble certainement à cela. Informations supplémentaires sur le Dr Watson, y compris ce qui ressemble à une manière plus sûre de le désactiver que la suppression de la clé de registre: TechDows.com/2009/03/... ccm.net/faq/6610-how-to-delete-disable-dr-watson-debugger


@dknaack Devrais-je mettre ce code dans programme.cs ou chacun de mes formulaires le faire ne plante pas sur les systèmes des clients?