WCF 和 127.0.0.1 与 localhost
Posted
技术标签:
【中文标题】WCF 和 127.0.0.1 与 localhost【英文标题】:WCF and 127.0.0.1 vs localhost 【发布时间】:2011-06-07 02:44:39 【问题描述】:使用 127.0.0.1 和 localhost 有什么不同吗?
我问这个是因为我在定义 wcf 连接时注意到了一个不同之处。
<client>
<endpoint binding="netTcpBinding" bindingConfiguration="netTcpNosecurity" contract="MyClass" name="MyName" behaviorConfiguration="megaGraphBehavior" address="net.tcp://localhost:8011/myname" />
</client>
在某些环境中,我注意到服务器在使用 localhost 时突然开始抛出此错误,我只能通过使用 127.0.0.1 使其工作。
无法连接到 net.tcp://localhost:8011/myname。连接尝试持续了 00:00:02.2341176 的时间跨度。 TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它127.0.0.1:8011。 ---> System.Net.Sockets.SocketException: No connection could be made because the target machine主动拒绝它127.0.0.1:8011
如何解释,我应该始终使用 127.0.0.1 吗?
【问题讨论】:
【参考方案1】:我今天刚遇到这个问题,随便解决了(不明白为什么会出现这些)。
看这个截图:
看看我在哪里检查了Auto-assign Port和Specific port 59816没有检查? 查看消息框在哪里显示localhost:59816
和127.0.0.1:59816
?
我通过检查特定端口 59816 解决了我的问题。
这也可能解决您的问题。
【讨论】:
【参考方案2】:Localhost 默认引用启用 IPv6 的机器上的 IPv6 地址。也许服务器端端点只能通过 IPv4 访问?
【讨论】:
以上是关于WCF 和 127.0.0.1 与 localhost的主要内容,如果未能解决你的问题,请参考以下文章
TCP错误代码10061:无法建立连接,因为目标机器主动拒绝它 127.0.0.1:8732
无法在 127.0.0.1:3306 连接到 mysql,用户 'root'@'localhost' 的用户 root 访问被拒绝(使用密码:YES)