【发布时间】:2011-03-22 04:50:47
【问题描述】:
从 C# 客户端(System.ServiceModel.ClientBase 的实例)调用 WCF Web 服务时,如何获取我连接的服务器的 IP 地址?
上下文:我们已经为一些 WCF 服务设置了一个网络场,当发生异常时我需要知道我连接到哪个特定服务器。
【问题讨论】:
-
网络场被负载均衡器隐藏了,所以我猜你是看不到的。
标签: c# wcf web-services
从 C# 客户端(System.ServiceModel.ClientBase 的实例)调用 WCF Web 服务时,如何获取我连接的服务器的 IP 地址?
上下文:我们已经为一些 WCF 服务设置了一个网络场,当发生异常时我需要知道我连接到哪个特定服务器。
【问题讨论】:
标签: c# wcf web-services
您可以将其添加到您的捕获中:
IPHostEntry heserver = Dns.GetHostEntry(Dns.GetHostName());
IPAddress curAdd = heserver.AddressList[0];
curAdd.ToString();
【讨论】:
您的负载平衡器可能正在向您隐藏特定的 Web 服务器。
通常的策略是记录每个服务器的错误,并使用某种日志聚合器来监控所有服务器。
如果您的客户端代码确实需要了解特定服务器,请考虑将该信息作为异常的一部分返回。毕竟,服务器知道自己的身份。
【讨论】: