Обработка глобальных исключений в службе - 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