【问题标题】:How to get IP address of WCF web service如何获取 WCF Web 服务的 IP 地址
【发布时间】:2011-03-22 04:50:47
【问题描述】:

从 C# 客户端(System.ServiceModel.ClientBase 的实例)调用 WCF Web 服务时,如何获取我连接的服务器的 IP 地址?

上下文:我们已经为一些 WCF 服务设置了一个网络场,当发生异常时我需要知道我连接到哪个特定服务器。

【问题讨论】:

  • 网络场被负载均衡器隐藏了,所以我猜你是看不到的。

标签: c# wcf web-services


【解决方案1】:

您可以将其添加到您的捕获中:

    IPHostEntry heserver = Dns.GetHostEntry(Dns.GetHostName());
    IPAddress curAdd = heserver.AddressList[0];
    curAdd.ToString();

【讨论】:

  • 您必须将它添加到服务器,并让它通过故障合同或日志记录返回自己的 IP,对吗?你没有具体说明。
  • 我认为原始消息有一些代码或其他东西,他想在他的错误消息中发送 IP 地址 - 这是从 catch 发送的。话虽如此,您可以将其添加到我们的 WCF 服务中,无论您这样做,它都会返回信息。我们使用一个带有错误消息的结果对象,我只需在该错误消息中添加 IP 地址。
【解决方案2】:

您的负载平衡器可能正在向您隐藏特定的 Web 服务器。

通常的策略是记录每个服务器的错误,并使用某种日志聚合器来监控所有服务器。

如果您的客户端代码确实需要了解特定服务器,请考虑将该信息作为异常的一部分返回。毕竟,服务器知道自己的身份。

【讨论】:

  • 它正在做 DNS 循环。有时错误来自客户端,因为它无法连接到服务器。
  • 如果客户端无法连接到服务器,则没有IP地址可以返回:)你唯一的希望就是用Wireshark追踪路径:wireshark.org/download.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多