如何使用 .NET 远程处理时捕获未经处理的异常

How to catch unhandled exceptions when using .NET Remoting

提问人:nickd 提问时间:9/4/2008 更新时间:2/25/2009 访问量:2053

问:

我想捕获服务器上远程对象中抛出的所有未经处理的异常,并将它们记录在那里,然后再将它们转换为某些自定义异常,以便特定异常不会跨越客户端/服务器边界。

我想我必须使用自定义频道同步,但任何人都可以确认这一点和/或有任何其他建议要提供吗?

C# 错误 远程处理

评论


答:

1赞 Guy Starbuck 9/4/2008 #1

我会使用 Microsoft 企业库异常处理应用程序块 - 它允许您处理错误并将特定类型的异常转换为不同类型的异常,然后再重新抛出到客户端。

评论

0赞 nickd 9/4/2008
谢谢,我没听说过这个。我不认为它解决了我的问题,因为我想捕获未经处理的异常。在我看来,EHAB 是关于对编码的异常处理程序应用策略。我只想记录意外的异常,以便我们可以在以后的代码版本中编写适当的处理程序。
0赞 nickd 2/25/2009 #2

在找到 Eliyahu Baker 的有用博客文章并阅读了 Rammer 的高级 .NET 远程处理的第 12 章后,我编写了一个自定义通道接收器,可以执行我想要的操作。这将拦截任何异常,并在将其发送到客户端之前将其记录在本地。

理想情况下,我想记录异常并为客户端提出一个更通用的异常,但我还没有破解这个难题。

评论

0赞 ulatekh 6/26/2015
你愿意分享更多细节吗?我尝试使用 Eliyahu Baker 的技术(在找到 archive.org 上的博客文章后),但它似乎没有捕捉到客户端意外断开连接时服务器上发生的远程异常(这是我试图处理的,主要是)。