Mam aplikację WinForm z pewnymi zależnościami w bibliotece zewnętrznej, która może powodować wyjątek poza kontekstem uruchomionych wątków. W obecnej formie jest to całkowicie OK (no, oczywiście z wyjątkiem wyjątku) i podłączyliśmy AppDomain.CurrentDomain.UnhandledException, aby po prostu ponownie uruchomić program.Zapobieganie wyświetlaniu okna dialogowego "[nazwaProgramy] przestał działać" na nieobsługiwanych wyjątkach
Jedyny problem to, że [Twój program] przestał działać jak poniżej, pojawi się: alt text http://telcontar.net/store/archive/CrashGallery/images/crash/vista/2007-05-30%20Microsoft%20Register%20Server.png
Czy istnieje sposób, aby zapobiec tego okna pojawianiu się w ogóle, czy to w AppDomain nieobsługiwany wyjątek program do obsługi lub w konfiguracji, ponieważ użytkownicy końcowi nie będą go czytać, a zasoby są przechowywane tylko do momentu kliknięcia.
AFAIK, to okno dialogowe jest wyświetlane tylko wtedy, gdy aplikacja kończy działanie w sposób nienormalny (na przykład nieobsługiwany wyjątek). Czy na pewno nieobsługiwany moduł obsługi wyjątku działa poprawnie we wszystkich przypadkach? – rmeador
Tak i nie. Masz rację, okno dialogowe jest spowodowane nieobsłużonym wyjątkiem i tak, * obsługa wyjątków AN * nie obsługuje tego. Jednak kod, który jest wyjątkiem, jest w usłudze hostowanej WCF i jako taka aplikacja WinForm obsługująca usługę WCF ostatecznie nie ma kontroli nad wyjątkiem, z wyjątkiem zauważenia tego w AppDomain.CurrentDomain.UnhandledException. Idealnym rozwiązaniem byłoby znalezienie i naprawienie wszystkich nieobsługiwanych wyjątków, ale na razie cieszę się, że właśnie zarejestrowałem wyjątek, zrestartuj aplikację (a tym samym usługę WCF) zamiast tylko kończenia i zawieszania aplikacji. – Serapth