我正在将 WCF 服务与 Winform 客户端一起使用。我通过多次调用 WCF 服务来创建数据缓存。
我的一个服务调用因错误而失败...
The communication object,
System.ServiceModel.Security.SecuritySessionClientSettings
1+ClientSecurityDuplexSessionChannel[System.ServiceModel.Channels.IDuplexSessionChannel],由于处于Faulted状态,不能用于通信。`
代码块,这是抛出错误...
return _wcfClient.GetGroups().ToList());
这种错误行为是随机的。有时它可以正常工作,有时它会抛出给定的错误,我厌倦了调试问题,但客户端调用永远不会到达 WCF 服务。
任何人都可以帮助我理解为什么会发生这种情况以及如何解决它。
带有代码的更新问题:
我正在使用 casle windsor DI 来解决依赖关系。这就是向 DI 注册服务的方式...
container.Register(Component.For<IWCFDataService>()
.AsWcfClient(DefaultClientModel.On(
WcfEndpoint.ForContract<IWCFDataService>().FromConfiguration("Binding_IWCFDataService")))
);
然后将依赖项注入到类构造函数中
调用服务的代码
public List<string> SomePRoperty
{
get
{
lock (_lockObjectSomePRoperty)
{
return _localvariable ?? (_localvariable = wcfClientResolvedFromDI.GetGroups().ToList());
}
}
set { _localvariable = value; }
}