您好
有没有办法写一个记录器可以记录在c#中写的另一个程序中发生的异常?
答案 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的一个很好的例子。