我正在使用以下代码从ChannelFactory实例创建一个频道。一切都按预期工作,但偶尔我会得到5-30秒((ICommunicationObject)频道).Close()。每次调用Close()时都不会发生这种情况。它发生在工厂温暖(即已经启动)和工厂冷(即首次启动)时。
可能导致这种情况的原因是什么?我不知道应该从哪里开始看。
var channel = _channelFactory.CreateChannel();
try
{
((ICommunicationObject)channel).Open();
channel.UpdateEntities(serviceEndpoint, formEndpoint, departmentContextConfiguration);
if (((ICommunicationObject)channel).State != CommunicationState.Faulted)
((ICommunicationObject)channel).Close();
}
catch
{
((ICommunicationObject)channel).Abort();
throw;
}
使用以下代码在其他地方创建工厂:
_channelFactory = new ChannelFactory<ITCPVaultService>(new NetTcpBinding(SecurityMode.None), new EndpointAddress(uri.Uri))