2013-02-20 53 views
1

我有静态的WCF客户端,但我仍然不明白如何重置/恢复它?如何在WCF服务重新启动后恢复WCF客户端?

我尝试之一:

if (Core.shed.State == CommunicationState.Faulted) { 
    Core.shed.Close(); 
    Core.shed = new wcfClient(); 
    } 

不行的话,我仍然得到

Cannot access a disposed object. Object name: 'System.ServiceModel.Channels.ServiceChannel'. 

我应该如何重置它时,我的WCF服务是活过来了?

+1

您无法关闭处于故障状态的通道 - 必须中止并创建新通道。 – Tim 2013-02-20 06:11:55

回答

4

您不能关闭发生故障的WCF通道 - 必须中止它并创建一个新通道。无法恢复该频道。

如果更改这一行代码:

Core.shed.Close(); 

到:

Core.shed.Abort(); 

那么你的代码的其余部分应该工作。