做了一个实时发送命令的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()
每次打开连接,出现异常之后,在finally里面将连接关闭
多次发送,可以考虑不用每次都open,可以一次open,多次执行,最后在close
貌似不是你说的这个问题。我是用的using代码块啊。
using (ChannelFactory<IClient> channelFactory = new ChannelFactory<IClient>(BaseConfig.TcpBinding, address))
{
IClient proxy = channelFactory.CreateChannel();
using (proxy as IDisposable)
{
proxy.SendMsg(msg);
}
}
谢谢你们的回答。我结贴了。不知道怎么搞得,又好用了。晕死了
最好把创建代理对象和发送命令那部分代码贴出来,这样回答的人会多一些。
你这个也没有代码,怎么帮你找原因