使用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);
机器的有序静态IP,包含Service Provider。并将以太网电缆直接插入PC。它起作用了,谢谢大家。