首页 新闻 搜索 专区 学院

wcf中双工问题

0
悬赏园豆:40 [已关闭问题] 关闭于 2009-11-03 14:17

我要实现客户输入数据,服务器端执行后返回给客户端,如果客户端选择继续,服务器端继续处理,就这样循环,当我退出的时候,要销毁代理对象,我为了保证在程序询问执行的过程中使用的是同一线程,我用单例模式写了这个代理对象,当我销毁后,第二次就没法启动了。按道理说第二次,系统会再次运行单例中的代理生成工做,但是系统没有。

问题补充: 我在客户端把代理设置为close的时候,就没办法再启动了,但是设置为null的时候,系统是可以再次启动的。不知道单例在WCF中能不能用,有的人告诉我千万不要用。我想关闭,联接,是关闭通道吗?那么必须在服务器端进行吧?
wuhan的主页 wuhan | 初学一级 | 园豆:11
提问于:2009-10-24 11:30
< >
分享
所有回答(2)
0

你代码可以提诶出来看看,如果你的代理对象使用单例模式,你在销毁的时候确定对象已经释放了资源吗,第二此无法启动的原因是不是对象引用不是null.所以无法重新实例化代理对象。

可以再检查一下。

Frank Xu Lei | 园豆:1860 (小虾三级) | 2009-10-30 09:31
0

单例并不能保证线程唯一,只能保证所有线程使用同一个通道。

使用单例创建WCF代理类时,销毁代理类时:

1,关闭通道,设置通道引用为null

当你再次使用单例代理类时,

1,检查通道为null,使用通道工厂创建通道;

Launcher | 园豆:45045 (高人七级) | 2009-10-30 09:55
创建通道没有问题。但是不能保证是唯一的session,那么如何设置来保证是唯一的一个SESSION呢?
支持(0) 反对(0) wuhan | 园豆:11 (初学一级) | 2009-11-02 08:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册