【问题标题】:Right way to specify base address in WCF service with net.tcp使用 net.tcp 在 WCF 服务中指定基地址的正确方法
【发布时间】:2014-06-27 08:27:05
【问题描述】:

假设我有一个 WCF 服务托管在 Windows 服务中,该服务在 LAN 上的机器上运行。我想让这个服务被在同一局域网上的其他机器上运行的应用程序使用。进一步假设我已经使用 TCP 在 Windows 服务中托管了 WCF 服务。因此,应用程序配置文件的基地址将如下所示:

<add baseAddress="net.tcp://localhost:8523/Service1" />

我的问题是,尽管我提到了localhost,但客户端是否可以通过 LAN 访问此服务?什么是提及基地址以便局域网上的客户端可以使用服务的正确方法?任意地址是否有效?如果localhost 有效,我该提哪个端口?

【问题讨论】:

  • 把localhost换成机器的ip地址
  • IP 地址是否与 net.tcp 一起使用?我需要在许多 LAN 网络中实现这种架构,即每个 LAN 将有一台运行 Windows 服务的机器,并且同一 LAN 上的其他机器应该能够访问该服务。在这种情况下,您的意思是我必须提及每个 LAN 的主机 IP 地址吗?还有一个问题:有没有办法在客户端动态决定服务的url(例如用户将输入服务的url)?
  • 对于每台机器运行您的服务,您必须相应地配置其配置(主机的 ip),并且您将有一个配置为您的客户端指定服务器的端点。
  • 我的意思是我必须为不同局域网上的客户端提及不同的服务网址吗?还有一个问题:是否可以让用户在运行时输入服务地址?
  • 我可以以编程方式配置这两个东西吗?我不想让它在 app.config 中。

标签: c# wcf tcp windows-services lan


【解决方案1】:

您需要指定实际的 ip。我认为 localhost 仅适用于当前机器。 localhost 是默认地址 127.0.0.1 的别名

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-29
    • 2013-09-14
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2011-01-02
    • 1970-01-01
    相关资源
    最近更新 更多