Обработка глобальных исключений в службе - C#
Формулировка задачи:
Добрый день!
Подскажите пожалуйста. Не получается сделать обработку глобальных исключений в службе Windows Services.
В WinForms Application делал вот так:
В службе так почему то не получается:
Подчёркивает Application если убрать методы обработки. Если они есть то пишет две ошибки:
namespace CiToMB { /// <summary> /// Class with program entry point. /// </summary> internal sealed class Program { /// <summary> /// Program entry point. /// </summary> [STAThread] private static void Main(string[] args) { Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(MyExceptionHandler); Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException,true); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } static void MyExceptionHandler(object sender, ThreadExceptionEventArgs e) { MessageBox.Show(e.Exception.Message); } static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs args) { using (ThreadExceptionDialog exceptionDlg = new ThreadExceptionDialog((Exception)args.ExceptionObject)) { exceptionDlg.ShowDialog(); } } } }
namespace CiToMB { static class Program { /// <summary> /// The main entry point for the application. /// </summary> static void Main() { System.Net.Mime.MediaTypeNames.Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(MyExceptionHandler); System.Net.Mime.MediaTypeNames.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException, true); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); ServiceBase[] ServicesToRun; #if DEBUG System.Diagnostics.Debugger.Launch(); #endif ServicesToRun = new ServiceBase[] { new CiToMB() }; ServiceBase.Run(ServicesToRun); static void MyExceptionHandler(object sender, ThreadExceptionEventArgs e) { MessageBox.Show(e.Exception.Message); } static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs args) { using (ThreadExceptionDialog exceptionDlg = new ThreadExceptionDialog((Exception)args.ExceptionObject)) { exceptionDlg.ShowDialog(); } } } } }
Error 1 } expected
иError 2 Type or namespace definition, or end-of-file expected
Как правильно сделать, подскажите пожалуйста? Скобки и запятые проверял, всё вроде правильно. Догадываюсь, что Application нельзя использовать в службе) А как правильно - не знаю )Решение задачи: «Обработка глобальных исключений в службе»
textual
Листинг программы
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(MyExceptionHandler) ThreadExceptionDialog exceptionDlg = new ThreadExceptionDialog((Exception)args.ExceptionObject
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д