WCF端点部署错误

时间:2013-04-13 03:29:59

标签: wcf endpoint

我创建了2个WCF端点,服务端点驻留在桌面应用程序上(IP地址为10.8.20.175);客户端端点驻留在Web托管的应用程序上。

这是服务端点配置

<services>
  <service behaviorConfiguration="NotificationServiceBehavior"
    name="NotificationService">
    <endpoint address="" binding="netTcpBinding" contract="INotificationService" />
    <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:3337/NotificationService" />
      </baseAddresses>
    </host>
  </service>
</services>

这是客户端端点配置

<system.serviceModel>
<client>
  <endpoint address="net.tcp://10.8.20.175:3337/NotificationService"
    binding="netTcpBinding" contract="INotificationService"
    name="NetTcpBinding_INotificationService" />
</client>
<bindings>
  <netTcpBinding>
    <binding sendTimeout="00:10:00" maxReceivedMessageSize="1000000" name="NetTcpBinding_INotificationService"/>
  </netTcpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

请注意,在端点地址中,我输入了服务端点的实际IP地址。当我在localhost上测试服务端点和客户端端点之间的通信时,该地址是localhost:3337并且通信良好。现在,当我部署端点时,我收到了以下错误:

套接字连接已中止。这可能是由于处理消息时出错或远程主机超出接收超时造成的, 或潜在的网络资源问题。本地套接字超时为&#39; 00:10:00&#39;。

System.Net.Sockets.SocketException:一个现有的连接被强制由远程主机在System.Net.Sockets.Socket.Receive关闭(字节[]缓冲液,的Int32偏移的Int32大小,的SocketFlags的SocketFlags)在System.ServiceModel .Channels.SocketConnection.ReadCore(Byte [] buffer,Int32 offset,Int32 size,TimeSpan timeout,Boolean closing)

日志表明连接被远程主机强行关闭,这意味着客户端端点实际发送了请求并且它已到达服务端点?我在这一点上很困惑。我不确定客户端端点是否可以到达服务端点。

顺便说一下,从客户端端点机器,我可以ping服务端点的机器,也可以在端口3337上telnet到远程机器。

1 个答案:

答案 0 :(得分:0)

根据我的经验,这表明客户已联系您的服务并已激活。但是,在通话过程中发生了一些事情,导致该服务的回复无效。

检查的最佳方式是为您的服务开启WCF tracing。这应该有助于您更好地了解服务器端的情况。