powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / регистрация исключений через веб-сервис
1 сообщений из 1, страница 1 из 1
регистрация исключений через веб-сервис
    #33974136
aspman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть задача: регистрировать исключения (необработанные
), происходящие в приложении на клиенте, в базе данных через веб-сервис.
Правильным ли будет такое решение, и нет ли чего лишнего (или чего-нибудь не хватает)?

1. Создаю проект и добавляю в него веб-референс на веб-сервис.
2. Добавляют такой класс


    /// <summary>
    /// Handles all unhandled exceptions
    /// </summary>
    public class HTTPExceptionHandler
    {
        //***********************************************************
        /// <summary>
        /// Add handlers to all unhandled exceptions
        /// </summary>
        public static void Run(string url)
        {
            HTTPExceptionHandler handler = new HTTPExceptionHandler(url);
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(handler.Domain_UnhandledException);
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(handler.Application_ThreadException);
        }

        //***********************************************************
        /// <summary>
        /// url of web-service for save issue
        /// </summary>
        protected string URL = null;
        public HTTPExceptionHandler(string url)
        {
            this.URL = url;
        }
        // handler for domain
        public void Domain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            SaveException("domain", (Exception)e.ExceptionObject);
        }
        // handler for application threads
        public void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
        {
            SaveException("thread", e.Exception);
        }
        //***********************************************************
        // save info about exception as HelpDesk issue
        private void SaveException(string fromWhere, Exception e)
        {
            // for test
            //MessageBox.Show(string.Format("Catch exception in {0}: {1}", fromWhere, e.Message));
            IssueRegisterWebReference.IssueRegister ir = new IssueRegisterWebReference.IssueRegister();
            ir.Url = this.URL;
            
            string appId = e.Source;
            string errorId = e.GetHashCode().ToString();
            string title = string.Format("Exception in application (occur in {0})", fromWhere);
            string descr = e.Message + "<br>StackTrace:<br>" + e.StackTrace;
            ir.RegisterAsync(appId, errorId, title, descr);
        }
    }


3. Компилирую проект в длл-ку и подключаю его в нужных приложениях.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / регистрация исключений через веб-сервис
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]