我试图弄清楚如何让我的 WCF 代理类在继续之前等待准备好,或者允许调用服务。
我试过这样的事情:
_proxy = new WCFBlackjack(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/blackjack/IWCFBlackjack"));
while(!_proxy.State.Equals(CommunicationState.Opened)) {
if(!_proxy.State.Equals(CommunicationState.Opening)) {
try {
_proxy.Open();
} catch(EndpointNotFoundException enfe) {
/* ... */
}
}
System.Threading.Thread.Sleep(1);
}
但显然这不起作用,否则我不会在这里。起初它似乎可以工作,但 ChannelFactory 在 open 语句上抛出了 InvalidOperationException。
我是 WCF 的新手,也许我想太多关于 Sockets-esque 的东西,但我希望我的客户继续重试,直到端点可用或可以找到,并以某种方式触发 -相关事件或类似的东西。