首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

WCF怎的对客户端进行操作

2013-07-01 
WCF怎样对客户端进行操作?通过WCF做一个分布式的管理系统,需要服务器端给多个客户端发送操作指令,比如在客

WCF怎样对客户端进行操作?
通过WCF做一个分布式的管理系统,需要服务器端给多个客户端发送操作指令,比如在客户端创建文件夹、修改客户端的配置文件等,再将操作结果返回给服务器端。

对WCF不是很熟悉,刚看了一段时间的书,感觉介绍的都是客户端获取服务器端的信息,或者修改服务器端的数据,好像没有我这样的操作。

难道需要将客户端和服务器端调换,由客户端发布SVC,再由服务器端引用多个客户端的svc? 我觉得这样很别扭!

请大家给我指条名路啊,多谢了! WCF? 发布 管理 服务器
[解决办法]
在wcf端写个处理客户端请求的接口,这个接口实现返回相关的具体操作命令(创建文件夹或者修改配置文件)。客户端根据返回的操作命令进行具体的操作(创建文件夹或者修改配置文件)。
[解决办法]
当然可以啦! 可以使用WCF的双工通讯。
大概原因就是当客户端打开时,连接一下服务器端,在服务器端进行一下“注册”,这时服务器端即可对客户端进行操作了。
曹大人才分享了一个通过WCF双工聊天的DEMO,可以参考一下

希望能帮助到你
[解决办法]

引用:
引用:当然可以啦! 可以使用WCF的双工通讯。
大概原因就是当客户端打开时,连接一下服务器端,在服务器端进行一下“注册”,这时服务器端即可对客户端进行操作了。
曹大人才分享了一个通过WCF双工聊天的DEMO,可以参考一下

希望能帮助到你
多谢。

好像双工操作是客户端发送请求,wcf端通过回调来对客户端的信息进行操作……


当然可以的,当客户端向服务器端注册后,服务器端可以随便什么时候调用客户端的。 当然前提是客户端没有退出。
参考曹大人的DEMO就明白了。
[解决办法]
注册操作实际上就是将客户端传来的回调方法进行缓存的。
[解决办法]
刚开始你觉得是先client发送一个请求,服务端一个响应。

但是你自己想想,使用的是TCP绑定,,是TCP。

嗯。。所以在双工中 不存在绝对的服务端和客户端。
[解决办法]
引用:
有没有具体些的文档,直接看代码有点不懂,多谢了!


可以看一下我发的曹大人分享的链接,贴子中我也回复了该项目中的大概思路,可以参考。
实在不行你就去百度一下wcf双工通信,相信会有一定的收获的。
[解决办法]
1:如果需要返回值,可以试试ref参数,当然我没用过双工,不知道行不行。
2:isoneway=false,当你用同步方法调用它时,他就是“跨进程同步”的,你的当前线程最终会被设置为等待,直到对方执行完毕或者抛出异常,将执行完的信息返回调用端后,你的当前线程才能被恢复,从而继续执行,对应的异步方法是与他的同步方法对应的,这不用多说。当一个WCF服务方法IsOneWay配置为True时(注意:只能设置在没有返回值的方法上),当你用同步方法调用它时,它就是“发送队列端同步”的,你的当前线程同样最终会被设置为等待,但只要能在一定的时间内和对方正确连接上,并将方法参数无误的发过去,你的当前线程便会恢复执行,而不需等待对方任何执行结果(什么结果?执行完毕或者异常信息),同样,“发送队列端异步”也是与之对应的,这也不用多说
[解决办法]
1.不知道为什么客户端的callback需要返回值,因为你传入的callback本身就是一个执行方法,你完全可以将该方法定义成可以接收参数的。这时服务器端进行回调时,直接将想返回的参数传入该callback方法即可。
2.我理解。isoneway只是来确定方法是否需要回复值的,双工通讯的callback与回复值是完全没有关系。双工通信是服务器端调用客户端注册的callback方法。
3.你的理解是错误的。 一般情况下,是客户端打开时(或者登录时)向服务器端通知,“啊,我上来了,有事儿M我啊!”,这就是所谓的注册,服务器端会将通知的客户端的callback缓存起来(这得自己做)。   当服务器端想和在线的客户端发送通知时,会取出我们缓存出来的callback,然后按个去调用通知。
其实这和c# socket差不多的。
[解决办法]
当然就像10楼的兄弟所说,双工不存在绝对的客户端服务端。
当你确定所有客户端的位置时(也就是发布的服务地址),那么服务器端要发送通知时,可以将所有确定的客户端都发送通知。
[解决办法]
其实如果你的程序是winform,那么建议使用soket

热点排行