1
5
经过大量的研究和实验,答案是: 此时(.NET 3.5)没有允许处理WCF调用上下文中可能发生的所有可能异常的机制。 在服务方法执行期间发生的异常可以通过以下方式轻松处理:
但是,对于低级别的WCF基础结构错误,没有完美的解决方案。目前存在的最佳解决方案似乎是实现一个自定义通道来捕获更多的异常。 在 this Microsoft Connect Bug Report ,Microsoft确认无法处理所有类型的WCF基础结构错误。 在 this thread on the Microsoft WCF forums ,有一个关于如何实现自定义通道的示例。该解决方案只适用于HTTP,而不适用于HTTPS。此外,自定义通道也不会捕获某些WCF基础结构错误(请参阅该特定线程中的详细信息)。 |
2
2
使用faultcontracts。然后可以在客户端处理故障。 http://msdn.microsoft.com/en-us/library/ms732013.aspx 这对于调试也更好,因为通常您会开发一个客户机,并且不希望为了调试而关闭服务器。 在客户端,使用try/catch块捕获所有异常/错误。肯定有一些在服务器端无法检测到的错误,例如通信问题,因此您无论如何都需要处理客户端上的错误。 如果您想要集中化错误处理,您可以创建一个服务来接收关于所有错误的消息,将错误发送到该服务器,并让它记录下来。如果您想要创建一个集中的消息跟踪/性能分析/日志记录工具,并且拥有大量的应用程序处理器、服务器、客户机等,那么这一点非常有用。 |
3
0
关键是-如果服务器无法访问或无法处理消息,则服务器上不会出现错误-该错误将在客户端上弹出(“TimeoutException”或其他)。 因此,在这些情况下,在服务器上使用IErrorHandler确实没有帮助,因为错误确实发生在客户机上(不能建立连接,因为网络断开,或者服务器地址或sstuff中的拼写错误)。 所以在客户机方面,您肯定还必须使用try….捕获所有服务器调用。 马克 |
4
0
设置诊断跟踪并使用 Service Trace Viewer Tool . 链接还包含有关配置跟踪的信息。 |
Ehsan Akbar · 当请求被激发时,WCF请求时间会增加 6 年前 |
Gans · 具有多操作合约的WCF Rest服务 6 年前 |
Moelgaard · NLog中的IIS应用程序名称。配置 6 年前 |
Kerwen · WCF服务调用异步函数 6 年前 |