【问题标题】:Getting hosted IP address of WCF service获取 WCF 服务的托管 IP 地址
【发布时间】:2016-09-06 05:05:43
【问题描述】:

我有 wcf 服务,它在 IIS 上使用 http 和 net.tcp 协议运行。现在我想使用分别分配给它们的端口获取实时 IP 地址。此外,我希望它在 wcf 服务项目中。请提出您的建议。

【问题讨论】:

标签: c# wcf


【解决方案1】:

当您使用 web.config 文件设置 WCF 服务时,您指定端口,如下面的 web.config 中 baseAddresses 元素中所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="ServiceClassName">
        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:12345/ServiceClassName"/>
          </baseAddresses>
        </host>
        <endpoint address=""
                  binding="netTcpBinding"
                  contract="ServiceInterfaceName" />
      </service>
    </services>
  </system.serviceModel>
</configuration>

IP 地址有点棘手。是否存在在运行时不知道 IP 地址的原因,或者是否存在无法使用主机名连接到服务的特定原因?

【讨论】:

  • 绝对是。这是一种方法,但在这种方法中,每当我的服务端口或 ip 更改时,我都需要更改基地址。但我的意思是,有什么方法可以让我在 wcf 项目中获取所有已分配协议的实时 IP 地址,例如 http,net.tcp,该项目使用诸如 (Dns.GetHostAddresses) 之类的类运行
  • 没错。请记住,开发和部署是分开的。主机名等的配置在部署步骤中完成。您的 WCF 服务的端口多久更改一次?
  • 你肯定是对的。但我正在寻找一种没有什么是硬代码的方法。我很欣赏你的建议。谢谢
  • 所以通过代码而不是通过 .conf 创建配置。
猜你喜欢
  • 1970-01-01
  • 2012-07-29
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 2012-06-18
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
相关资源
最近更新 更多