标签:
WCF之消息模式分为:
1、请求/答复模式
2、单向模式
3、双工模式
其中,请求/答复模式,在博文:
中进行了详细介绍,此处将主要介绍:单向模式与双工模式。
1、首先,先创建一个WCF应用程序:
创建完成后,目录如下:
2、删除IService1.cs和Serivce1.svc,或者修改名称为:CalculateService.svc与ICalculateService.cs后,显示如下:
3、ICalculateService.cs文件内容如下:
4、CalculateService.svc文件中的内容:
5、修改Web.config的配置文件
6、新建winform客户端进行测试
7、添加服务端引用:
小注:
今天在vs2015中新建WCF类库,又能找到服务了
8、客户端代码如下:
小注:
在WCF回调中需要注意死锁问题
1、如果WCF中暴露出来的操作,没有返回值,则可以通过就是设置回调操作
IsOneWay=true,这样回调以后立即释放服务实例,不需要等待客户端响应消息,也可以避免死锁。
2、如果WCF中暴露出来的操作,有返回值,则需要通过,修改服务的ServiceBehavior的ConcurrencyMode为Reentrant或Multiple即可。
此时,服务端的死锁问题搞定了。
下面就需要考虑客户端的死锁问题了
客户端的死锁问题,通过在客户端回调函数类中的CallbackBehaviorAttribute中控制这一行为
死锁具体分析可以参考:点击打开链接
demo代码:点击打开链接
服务端死锁时的提示信息:
小注:
标签:
原文地址:http://www.cnblogs.com/Alex80/p/5133218.html