C # Application logger - PullRequest
       4

C # Application logger

2 голосов
/ 28 ноября 2010

Привет
есть ли способ написать регистратор может регистрировать исключение, произошедшее в другой программе, написанной также на c #?

Ответы [ 3 ]

2 голосов
/ 28 ноября 2010

Да, но это нелегко.

Если вы запускаете приложение в AppDomain из вашего текущего приложения, это относительно просто.То, что вы делаете, относится к этому домену, вы присоединяете к обработчику событий UnhandledException и таким образом регистрируете исключения.

Однако я подозреваю, что приложение C #, на которое вы ссылаетесь, выполняется в другом процессе.В этом случае вы по-прежнему используете примерно такой же механизм, но на самом деле намного сложнее получить AppDomain.Это включает в себя управляемый C ++ и выполнение потока в удаленном домене.Вы можете посмотреть Могу ли я добавить поток в удаленный домен приложения из C # и http://social.msdn.microsoft.com/Forums/en/winforms/thread/e4cfa5dd-e254-4088-8754-09dc40d4fb5b для получения дополнительной информации об этом.

1 голос
/ 28 ноября 2010

Исключением является механизм, который существует строго в процессе, поэтому нет.

0 голосов
/ 28 ноября 2010

В случае исключения вы можете отправить сведения об исключении в другое приложение, которое отвечает за регистрацию исключения.Вы можете использовать один из множества механизмов удаленного вызова процедур, например веб-службы или Windows Communication Foundation (WCF).

Вот хороший пример Расширения обработки ошибок в WCF .

...