我有一个从客户端调用的WCF服务。当在调试期间客户端和客户端之间来回存在数据密集时,服务中会出现异常并且必须再次加载服务。在我的情况下,该服务加载大约需要10分钟(它加载数据)。我不会在WCF中抛出任何异常。我将所有服务调用/函数包装在“try and catch {return null}”中(将null返回给客户端而不是中断),但是异常仍然发生在客户端并且服务中断了。
这个错误发生在哪里?这是communicationexception,来自WCF服务内部的一些随机异常。我想捕获这个异常而不是整个服务的故障(需要等待10分钟才能重启服务)。是否有任何工具/代码可以捕获WCF中的任何和所有异常并且不会使其出错。网络连接中断等一些例外情况是我们无法控制的。我不会抛出任何例外情况,例如“新异常(”发生的事情“)。)
感谢您的帮助。
答案 0 :(得分:0)
请参阅我的回答here以启用跟踪,以便您可以确定WCF服务中发生异常的位置。除此之外,我怀疑是否有人可以为您解释为什么遇到WCF服务问题。
答案 1 :(得分:0)
只是猜测:你说你的服务加载了大量数据。您从服务中返回多少数据?如果返回一个巨大的列表,则此异常可能是由错误的客户端 - 服务器配置引起的。你应该增加maxReceivedMessageSize和maxBufferSize;有时也会在服务器和客户端上增加DataContractSerializer的maxItemsInObjectGraph。
另外,为了捕获服务器上的所有异常而不是多个try-catch块,您可以实现IErrorHandler。