C#应用程序记录器

时间:2010-11-28 11:41:14

标签: c# windows logging

您好
有没有办法写一个记录器可以记录在c#中写的另一个程序中发生的异常?

3 个答案:

答案 0 :(得分:2)

是的,但这并不容易。

如果您在当前应用程序的AppDomain中运行应用程序,则相对容易。你所做的就是那个域,你附加到UnhandledException事件处理程序并注册那些异常。

但是,我怀疑您所指的C#应用​​程序是在不同的进程中运行的。在这种情况下,您仍然使用大致相同的机制,但实际获得AppDomain要困难得多。这涉及托管C ++并在远程域中执行线程。您可以查看Can I inject a thread in a remote app domain from C#http://social.msdn.microsoft.com/Forums/en/winforms/thread/e4cfa5dd-e254-4088-8754-09dc40d4fb5b以获取有关此内容的更多信息。

答案 1 :(得分:1)

异常是一种严格存在于进程中的机制,所以没有。

答案 2 :(得分:0)

发生异常时,您可以将异常详细信息发送给负责记录异常的另一个应用程序。您可以使用各种远程过程调用机制之一,例如可能使用Web服务或Windows Communication Foundation(WCF)。

以下是Error Handling Extensions in WCF的一个很好的例子。