none
WCF使用netTcpBinding时,局域网内另一台机器无法访问WCF服务 RRS feed

  • 问题

  • 一台机器是SERVICE,一台是CLIENT。使用basicHttpBinding可以访问,但是使用netTcpBinding时无法访问。我想应该是在配置中有都没有配置。但是我给bindingConfiguration 配置了如下:

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

    还是无效。求解释!!

     

    2011年4月2日 2:28

答案

全部回复

  • 报什么错误呢?


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2011年4月2日 2:31
    版主
  • 无法连接到 net.tcp://172.16.3.229/Router/。连接尝试持续了 00:00:21.0470000 时间跨度。TCP 错误代码 10060: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 172.16.3.229:808。

     

    就是在我调用WCF的一个方法时报的错误

     

    如果我绑定协议是basicHttpBinding这种不安全的方式时可以调用。

    2011年4月2日 2:41
  • 我原本service的baseaddress的地址是http的,在另一台机器上使用ADDwebReferenct的方式可以找到。但是我刚才尝试了吧service的baseaddress改为了NET.TCP,在client上AddWebReference的方式就无法找到了。
    2011年4月2日 2:49
  • Address不对或者服务每启动

     


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2011年4月2日 2:53
    版主
  • Address不对或者服务每启动

     


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    可是不是如此,我ADDRESS对的,服务也启动了。刚才说的是我同时操作2台机器。不同IP在访问。但是我在SERVICE那个服务器里,调用这个net.tcp 的地址的方法都是可以的。
    2011年4月2日 2:57
  • 你客户端的添加引用后 生成的配置文件是什么?

     


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2011年4月2日 3:01
    版主
  •   <client>
       <endpoint address="net.tcp://172.16.3.229/Router" binding="netTcpBinding"
         bindingConfiguration="NetTcpBinding_IRouter" contract="Location.IRouter"
         name="NetTcpBinding_IRouter" />
      </client>
    
    
        <binding name="NetTcpBinding_IRouter">
         <security mode="None">
         </security>
        </binding>
    
    上面是client的配置文件
    下面是Service的配置文件,当中的NET.MSMQ是其他用处。这个问题是牵涉那个NET.TCP的。
     <service name="RouterService.Router">
        <host>
         <baseAddresses>
          <add baseAddress = "http://172.16.3.229/Router/" />
         </baseAddresses>
        </host>
        <endpoint address ="net.msmq://172.16.3.229/private/spidermsmq" binding="netMsmqBinding" contract="RouterService.IRouter" bindingConfiguration="NetMsmqBinding_ISpider"/>
        <endpoint address ="net.tcp://172.16.3.229/Router" binding="netTcpBinding" contract="RouterService.IRouter" bindingConfiguration="netBind" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
       </service>
    
    
       <netTcpBinding>
        <binding name="netBind">
         <security mode="None"></security>
        </binding>
    
         
    2011年4月2日 3:17
  • TCP绑定的格式不对。

    默认情况下端口80已经被IIS使用,

    net.tcp://172.16.3.229/Router

    加上一个端口,大于1024.

    确保此端口没被使用。

    重新修改一下客户端地址,重新运行。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2011年4月2日 3:19
    版主
  • 我觉得问题是Client那台机器无法访问Service上的任何net.tcp协议的东西。因为我Service的Baseaddress改为net.tcp   service机器里的项目可以添加这个net.tcp协议的引用。但是client那台机器添加时找不到这个地址。
    2011年4月2日 3:21
  • TCP绑定的格式不对。

    默认情况下端口80已经被IIS使用,

    net.tcp://172.16.3.229/Router

    加上一个端口,大于1024.

    确保此端口没被使用。

    重新修改一下客户端地址,重新运行。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    没用。。加了端口了。还是老样子,同一台机器可以访问,但是其他还是找不到地址或者未启动。
    2011年4月2日 3:51
  • 搞定了,原来是Service我设8822的端口被防火墙拦截。开启就行
    • 已标记为答案 Gio.Zhou 2011年4月2日 5:23
    2011年4月2日 4:12