gpt4 book ai didi

c# - WCF Windows 服务。可以本地连接,但不能远程连接

转载 作者:太空狗 更新时间:2023-10-29 20:32:16 24 4
gpt4 key购买 nike

我花了两天时间试图解决这个问题,但我很困惑。我有一个 WCF 服务器在 Windows 上作为服务运行。客户端可以在同一台机器上连接到它,但我一移动就尝试从另一台机器连接到服务,但我不能。

所以如果客户端和主机在同一台机器上,没有问题。如果主机和客户端在不同的机器上,我会收到异常错误。

这是奇怪的部分,我可以使用 svcutil 从远程机器生成应用程序配置和 proxy.cs 文件,但是一旦我调用该函数,它就会报错。

无法连接到 net.tcp://ipaddress:port/Service1。 TCP 错误代码 10061。无法建立连接,因为目标机器主动拒绝。

如果我从同一台机器主机/客户端调用它没有错误。

有什么想法吗?

更新:

这里是服务端点设置。

<system.serviceModel>
<services>
<service behaviorConfiguration="Service1Behavior" name="WcfServiceLibrary1.Service1">
<endpoint address="net.tcp://192.168.1.75:8523/Service1" binding="netTcpBinding"
contract="WcfServiceLibrary1.IService1" />
<endpoint address="net.tcp://192.168.1.75:8523/mex" binding="mexTcpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://192.168.1.75:8523/" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name = "TcpBindingConfiguration">
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="Service1Behavior">
<serviceMetadata />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>

我什么都试过了。

有什么想法吗?

再次是客户端和主机在同一台机器上,一切都很好,一旦我将客户端放在不同的计算机上,没有骰子......

我以前从未对网络编程感到如此头疼...

谢谢

最佳答案

如果在主机上启用了 Windows 防火墙,请尝试禁用它(您可以通过控制面板实现)。如果它起作用,那么您就找到了罪魁祸首。您需要在防火墙配置中为您的服务添加异常(exception)并重新启用它。

如果您使用任何其他第 3 方防火墙软件,同样适用,因为通常与防病毒软件捆绑在一起。

编辑:

要设置不通过 TCP 的安全性,您可以在代码中使用构造函数:

var binding = new NetTcpBinding(SecurityMode.None);

或者您可以在配置 XML 中执行此操作:

<netTcpBinding>
<binding name="myTcpBinding">
<security mode="None" />

关于c# - WCF Windows 服务。可以本地连接,但不能远程连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com