我在Windows Forms应用程序中有一个WCF自托管服务。我将使用它,因此手持移动设备可以在基本级别与应用程序进行交互。
我启用了basicHttp(http://localhost:8080/tagservice/basic
),NetTCP(net.tcp://localhost:8888/tagservice
)和basicHttpMex作为端点。
出于测试目的,我在网络上设置了一个虚拟机(并在物理机上重复这些虚拟机)。
这些端点都可以在托管服务的本地计算机上运行。
但是,当在远程计算机上运行WCFTestClient时,我得到了混合结果。
无法连接到http://localhost:8080/tagservice/basic。 TCP错误代码10061:无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8080。
无法连接到net.tcp:// localhost:8888 / tagservice。连接尝试持续时间跨度为00:00:01.0014400。 TCP错误代码10061:无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8888。
将localhost更改为主机上app.config中的真实IP地址时,在本例中为192.168.0.61。基本HTTP工作。但是net.icp失败并带有
“服务器已拒绝客户端凭据。”
我的两个问题是:
答案 0 :(得分:4)
在运行时构建和配置客户端绑定,因此您可以根据计算机信息以编程方式设置URL
这样的事情应该有效
string hostName = System.Net.Dns.GetHostName();
int port = 8080;
Uri serviceUri = new Uri(string.Format("http://{0}:{1}", hostName, port.ToString()));
EndpointAddress endpoint = new EndpointAddress(serviceUri);
然后,您只需将该端点附加到您的客户端,它应该全部连接起来。
答案 1 :(得分:3)
您可以将localhost
替换为您的主机名(如果IP地址是动态的)或IP地址(如果是静态的)并重新编译您的客户端。