如何在WCF服务重启后恢复WCF客户端?

cnd*_*cnd 1 .net c# wcf

我有静态WCF客户端,但我仍然无法理解如何重置/恢复它?

我的一个尝试:

if (Core.shed.State == CommunicationState.Faulted) {
    Core.shed.Close();
    Core.shed = new wcfClient();
    }
Run Code Online (Sandbox Code Playgroud)

不行,我还在

Cannot access a disposed object. Object name: 'System.ServiceModel.Channels.ServiceChannel'.
Run Code Online (Sandbox Code Playgroud)

当我的wcf服务再次活动时,我该如何重置它?

Tim*_*Tim 5

您无法关闭出现故障的WCF通道 - 您必须中止它并创建一个新通道.无法恢复该频道.

如果您更改以下代码行:

Core.shed.Close();
Run Code Online (Sandbox Code Playgroud)

至:

Core.shed.Abort();
Run Code Online (Sandbox Code Playgroud)

然后你的其余代码应该工作.