我正在使用Silverlight客户端和.NET 3.5 WCF服务的WCF双工服务.
我的方案是:在双工推送OneWay操作从服务器到客户端如果在客户端通知处理程序中发生异常,则通道会出现静默故障,因此任何进一步的双工调用都会从服务器超时并失败.(如此处所解释的单向操作和例外)
我的问题:
FaultContracta 装饰,OneWay OperationContract在客户端包装异常并防止通道故障吗?我有一个客户端应用程序,一旦进入通知服务进度.对服务的方法调用标记为IsOneWay = true,因为通知不需要任何返回值,我不想延迟.
客户端可以向服务通知错误,然后终止.
问题是:单向方法调用在发送消息后是否返回到调用者代码?或者它将消息排队,稍后由另一个线程发送?
这两个进程(客户端和服务)在同一台机器上,我注意到有时(当机器超载时)服务没有收到错误通知.我怀疑我提到的第二个选项发生了,但我不确定.
如果我是对的,我如何确保通知发送并保持方法?
我使用WCF netNamedPipeBinding和wsHttpBinding.我想知道单向方法是否可以在没有try它的情况下成功执行.
编辑正如有人所指出的那样,连贯性可以在给定的时刻成功,并且在下一次失败时.我不在乎.我只是想知道WCF是否有替代方案try.有没有办法检查服务是否已启动且可以访问?