Home Articles

使用NetTcpBinding创建WCF服务时,请使用 endpoints “localhost”或计算机的主机名?

Asked
Viewed 1306 times
3

我有一个使用NetTcpBinding并在Windows服务中运行的WCF服务 . 远程客户端连接到此服务 . 到目前为止,我已经将 endpoints 定义为使用“localhost” .

如果主机有多个网络适配器,它是否会在所有适配器上接收消息?

将机器的主机名分配给 endpoints 而不是“localhost”会更好吗?

有什么优点/缺点?

2 Answers

  • 1

    您可以使用System.Environment.MachineName

    例如:

    new EndpointAddress(new UriBuilder {Scheme = Uri.UriSchemeNetTcp, Port = port, Host = System.Environment.MachineName}.Uri);
    
  • 0

    如果我希望客户端能够连接任何外部接口以及localhost,我通常将URI设置为:

    的net.tcp://0.0.0.0

    这也减轻了部署到多台计算机的负担,因为您无需在每台计算机上更改主机名,但在您的环境中允许这样做可能会产生安全隐患 .

Related