今天测试一个程序,偶然发现WCF服务端抛出的异常会跑到客户端。
是这样的,我写了一个WCF服务,客户端调用这个服务,传递一个序列化为字节流的文件过去,服务端接收到这个字节流之后,将其写入到指定目录保存为文件。
我的服务端的实现代码没有catch异常,当创建文件找不到指定目录的时候,发生“can not find directory”的异常。
结果这个异常在客户端抛出。
然后我在服务端catch这个异常,这样就不会再服务器端捕获到了。
一般来说,WCF服务的服务端要捕获异常,客户端的调用部分也要捕获异常(一般会发生WCF服务代理失效,即套接字断开的异常,以及调用WCF服务代理处于错误的状态等异常)。