为什么我的WCF服务偶尔会挂起((ICommunicationObject)频道).Close()?

时间:2015-03-11 02:22:25

标签: c# .net wcf

我正在使用以下代码从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))

0 个答案:

没有答案