wcf之消息模式分为:
1、请求/答复模式
2、单向模式
3、双工模式
其中,请求/答复模式,在博文:
<a target="_blank" href="http://blog.csdn.net/jiankunking/article/details/44118625"> wcf 入门教程一(动手新建第一个wcf程序并部署)</a>
<a target="_blank" href="http://blog.csdn.net/jiankunking/article/details/44275359">wcf 入门教程二</a>
中进行了详细介绍,此处将主要介绍:单向模式与双工模式。
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中控制这一行为
服务端死锁时的提示信息: