Обработка глобальных исключений в службе - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д