首页 新闻 搜索 专区 学院

WCF服务通信 有时成功有时失败。

0
[已解决问题] 解决于 2013-02-21 16:22

做了一个实时发送命令的wcf服务,命令分多少来说这个问题。当发送的命令较少的时候一般不会出错,而大量命令 循环发送的时候,就会出现这个情况。(这些命令时监控文件夹时生成的自定义类实体)

我想问的是,为什么有时候可以成功,有时候会失败。而且一旦失败了好像就不能继续发送了。

出错时:

System.ServiceModel.CommunicationObjectFaultedException: 通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为其处于“出错”状态。

Server stack trace:
   在 System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
   在 System.ServiceModel.Channels.ServiceChannel.System.IDisposable.Dispose()

Exception rethrown at [0]:
   在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   在 System.IDisposable.Dispose()

Echofool的主页 Echofool | 初学一级 | 园豆:175
提问于:2013-02-20 17:49
< >
分享
最佳答案
0

每次打开连接,出现异常之后,在finally里面将连接关闭

多次发送,可以考虑不用每次都open,可以一次open,多次执行,最后在close

奖励园豆:5
iceknp | 初学一级 |园豆:87 | 2013-02-20 17:57

貌似不是你说的这个问题。我是用的using代码块啊。
                    using (ChannelFactory<IClient> channelFactory = new ChannelFactory<IClient>(BaseConfig.TcpBinding, address))
                    {
                        IClient proxy = channelFactory.CreateChannel();
                        using (proxy as IDisposable)
                        {
                            proxy.SendMsg(msg);
                        }
                    }

Echofool | 园豆:175 (初学一级) | 2013-02-20 18:15

谢谢你们的回答。我结贴了。不知道怎么搞得,又好用了。晕死了

Echofool | 园豆:175 (初学一级) | 2013-02-21 16:23
其他回答(2)
0

最好把创建代理对象和发送命令那部分代码贴出来,这样回答的人会多一些。

碧落星痕 | 园豆:708 (小虾三级) | 2013-02-20 22:40
0

你这个也没有代码,怎么帮你找原因

li-peng | 园豆:954 (小虾三级) | 2013-02-21 12:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册