我创建了一个Window Service,它在localhost中运行良好。但是,当我将其安装到另一台计算机(使用我的帐户)时,另一台计算机上的客户端将返回“无法连接到远程服务器”。如果客户端在同一台机器上运行,它就可以正常工作。我也尝试在Console应用程序中托管相同的远程对象,它可以从远程机器上运行而没有问题。
这是我服务的OnStart()中的代码:
HttpChannel channel = new HttpChannel(8080);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyService), "MyService", WellKnownObjectMode.Singleton);
以下是客户端代码:
ChannelServices.RegisterChannel(new HttpChannel(), false);
MyService myService = (MyService)Activator.GetObject(typeof(MyService), "http://xxx.xxx.xxx.xxx:8080/MyService");
我发现有人在互联网上提出这个问题,但没有答案。有人知道吗?
答案 0 :(得分:1)
尝试禁用Windows防火墙(或任何防火墙)。可能是您尝试给我们的端口被阻止了。
重要更新
在你确定之后 您正在使用的端口被阻止, 重新启用防火墙并创建一个 允许连接的异常 那个港口。
(感谢Jim Mischel的评论,提醒我们这是必要的。)
答案 1 :(得分:0)
如果您正在使用Visual Studio并使用其内部Web服务器,则它不接受来自外部IP地址的连接。它只接受localhost连接。