代码之家  ›  专栏  ›  技术社区  ›  Tracker1

WCF未绑定到TCP端口(通过netstat-a检查)

  •  3
  • Tracker1  · 技术社区  · 15 年前

    好吧,我会尽量直截了当。我正在使用vb.net在vs2010中,我正在尝试自宿主一个wcf服务。(实际上是在Windows服务中,但我正试图通过一个简单的控制台应用来实现这一点。下面是有问题的代码,这里直接注入TCP/IP地址。wcf服务本身只是一个重命名的默认新wcf服务项目。

    Dim host As New ServiceHost(GetType(TestService))
    
    Dim tcpb As New NetTcpBinding()
    tcpb.PortSharingEnabled = True
    host.AddServiceEndpoint( _
        GetType(ITestService), _
        tcpb, _
        "net.tcp://localhost:62020/TestWcfService/" _
    )
    
    host.Open()
    
    Console.ReadKey(True)
    
    host.Close()

    我想我不能让这简单得多……我需要做些什么才能让端口真正绑定吗?当我奔跑 netstat -a 它没有显示62020上的监听端口,我真的是在我的whits结束这个。

    背景:我有另一个WCF服务正在尝试从IIS迁移到运行在Windows服务中的单独服务器。WCF服务只能在内部访问。在迁移过程中,我遇到了很多问题,所以我尝试绑定一个简单的服务,并让客户(网站)访问它。另一个WCF可以绑定(不同的端口),但有通信错误。这里有很多文字上的东西,非常不适合我的需要,我很难找到任何有用的东西。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Samuel Otter    15 年前

    我在测试新服务时遇到了同样的问题。结果发现我只是忘记了用[ServiceContract]属性标记服务接口。我想WCF没有费心创建端点,因为没有找到服务契约。

    如果没有实现至少一个契约,我无法想象有人想要打开一个服务主机,这会是一条很好的错误消息,但我怀疑只有在.NET 4中使用简化配置时才会发生这种情况。