自托管WCF TCP连接错误

时间:2013-07-06 01:33:39

标签: wcf tcp

我是WCF的新手并且遇到了NET.TCP连接问题。

这是设置。

服务器:Windows 8专业版。

自托管WCF服务,使用NetTcpBinding和SecurityMode.None:

try
  {
    _serviceHost = new ServiceHost(typeof(MouseTest));
    _serviceHost.AddServiceEndpoint(typeof(IMouseTest), new NetTcpBinding(SecurityMode.None), 
          "net.tcp://localhost:" + MyNetwork.Default.Port.ToString() + "/MyWPFServiceHost");
    _serviceHost.CloseTimeout = new TimeSpan(0,0,5);
    _serviceHost.Open();
    AddMessage("net.tcp open");
  }
  catch (CommunicationException ce)
  {
    // MUST open visual studio as administrator!!!!! (Not this app, but actual VS2010.
    Console.WriteLine("An exception occurred: {0}", ce.Message);
    _serviceHost.Abort();
    AddMessage(ce.Message);
  }
  catch (Exception ex)
  {
    AddMessage(ex.Message);
  }

客户端机器(各种类型):

private void openTCPServiceButton_Click(object sender, RoutedEventArgs e)
{
  String endpointAddress = "net.tcp://XX.XXX.XX.XX:" + MyNetwork.Default.Port.ToString() + "/MyWPFServiceHost";

  if (channelFactory == null)
    channelFactory = new ChannelFactory<IMouseTest>(new NetTcpBinding(SecurityMode.None),
      new EndpointAddress(endpointAddress));
  SendToListBox(channelFactory.Endpoint.Address.ToString());
  try
  {
    proxy = channelFactory.CreateChannel();
    proxy.StartRecording();
  }
  catch (Exception ex)
  {
    AddMessageThreadSafe(ex.GetType().ToString() + ": " + ex.Message);
  }
}

该服务托管在我的家用机器上,即Windows 8机箱。当我从同一台机器连接时,一切都很好。从同一局域网上的不同机器,一切都很好。从LAN外部(在我的办公室机器上),我得到:

  

System.ServiceModel.EndpointNotFoundException:无法连接到   的net.tcp://xx.xxx.xx.xx:8085 / MyWPFServiceHost。连接尝试   持续了00:00:01.1241124的时间跨度。 TCP错误代码10061:否   可以建立连接,因为目标机器主动拒绝   它

如果我完全禁用Win8防火墙,则会出现相同的错误。

如果我在家中的Windows Server 2008计算机上运行该服务的副本,我可以从任何地方连接,包括通过互联网。

请在3天之后我无处可去。还请记住,这是SELF-HOSTED而不是IIS托管。非常感谢任何见解或从哪里开始寻找。我确保打开了这个10061错误中通常提到的所有服务。

0 个答案:

没有答案