我有一个代码可以从一个具有多个实例的客户端访问多个wcf服务器。如果这之间有任何连接丢失,有故障/关闭事件触发功能就可以解决这个问题。
((ICommunicationObject)notificationProviderClient).Faulted += new EventHandler(myHost_Faulted);
((ICommunicationObject)notificationProviderClient).Closed += new EventHandler(myHost_Closed);
void myHost_Faulted(object sender, EventArgs e)
{
}
void myHost_Closed(object sender, EventArgs e)
{
}
如果任何连接出错/关闭,则调用上述函数。 在这个场景中如何找到哪个wcf服务器连接丢失了?有没有可能找到这个或我们必须采取另一种方法来处理这个?
答案 0 :(得分:0)
在连接丢失期间找到服务器的远程地址,在客户端使用
this.notificationProviderClient.InnerDuplexChannel.Faulted += new EventHandler(myHost_Faulted);
void myHost_Faulted(object sender, EventArgs e) {
IContextChannel channel = sender as IContextChannel;
if (channel != null)
{
var remoteAddrs = a1.RemoteAddress;
}
}