本示例主要体现以下几部分内容:
1、支持回调(callback)。包括Tcpbinding和WsDualHttpbing两种。Tcp主要应用在局域网内的传输。WsDual可应用于广域网。对于Ws绑定要注意,在XP环境下,该绑定的客户端回调地址默认使用80端口,这会与IE端口重复,造成地址冲突。因此须在客户端绑定中,指定clientBaseAddress属性。
2、解决UI界面回调死锁问题。当客户端UI中实现回调时,由于之前UI一直在等待第一次调用,所以会造成死锁。示例中通过设置callbackbehavior实现。如下:
[CallbackBehavior(
//所有的客户端会为所有的连接和激活对象共享一个相同的服务实例
ConcurrencyMode = ConcurrencyMode.Multiple,
UseSynchronizationContext = false)]
page:http://www.codeproject.com/KB/WCF/WCF_Duplex_UI_Threads.aspx