使用WCF通过internet连接两台机器

本文关键字:两台 机器 WCF 通过 internet 连接 使用 | 更新日期: 2023-09-27 18:04:13

我最近开始学习WCF。所以我写了一个简单的应用程序。客户端发送一个字符串,服务器只是在屏幕上输出它。这个应用程序在我本地地址的电脑上运行良好。但是当我尝试通过互联网连接我的IP时,我得到这个异常:

System.ServiceModel。EndpointNotFoundException:没有端点监听http://(IP):4000/IContract可以接受消息。

端口是开放和可用的。请告诉我,我错过了什么。下面是我如何声明address:
Uri adress = new Uri("http://(IP of computer, running server):4000/IContract");
我从一个网站上获取了我的IP地址。它给了我两个。我的Ip地址和本地Ip地址。因此,只有当客户端和服务器都在我的PC上时,本地才能工作。当我尝试不本地化-没有任何工作。
非常感谢任何帮助。

下面是来自Service provider的代码:

    Uri adress = new Uri("http://212.3.115.3:4000/IContract");
    BasicHttpBinding binding = new BasicHttpBinding();
    Type contract = typeof(IContract);
    ServiceHost host = new ServiceHost(typeof(Service));
    host.AddServiceEndpoint(contract,binding,adress);
    host.Open();

下面是服务消费者的代码:

        Uri adress = new Uri("http://212.3.115.3:4000/IContract");
        BasicHttpBinding binding = new BasicHttpBinding();
        EndpointAddress endpoint = new EndpointAddress(adress);
        ChannelFactory<IContract> factory = new ChannelFactory<IContract>(binding, endpoint);
        IContract channel = factory.CreateChannel();
        channel.Say(tmp);

使用WCF通过internet连接两台机器

机器的有序静态IP,包含Service Provider。并将以太网电缆直接插入PC。它起作用了,谢谢大家。