Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
регистрация исключений через веб-сервис
|
|||
|---|---|---|---|
|
#18+
Есть задача: регистрировать исключения (необработанные ), происходящие в приложении на клиенте, в базе данных через веб-сервис. Правильным ли будет такое решение, и нет ли чего лишнего (или чего-нибудь не хватает)? 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. Компилирую проект в длл-ку и подключаю его в нужных приложениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 14:07 |
|
||
|
|

start [/forum/topic.php?fid=18&gotonew=1&tid=1389784]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
3ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 372ms |

| 0 / 0 |
