我目前正在尝试向现有应用程序添加一个简单的基于WCF的Web UI,以便可以通过Web浏览器在同一LAN上的任何设备上远程控制某些方面。 (例如,从30英尺远的手机或平板电脑通过WiFi)至少可以在同一台机器上工作,但如果我尝试从任何其他设备连接,它只会超时。
WebHttpBinding binding = new WebHttpBinding();
binding.TransferMode = TransferMode.Streamed;
WebHttpBehavior behavior = new WebHttpBehavior();
WebServiceHost host = new WebServiceHost( typeof( Service ), new Uri( "http://localhost:8000/[REMOVED PRODUCT NAME]" ) );
host.AddServiceEndpoint( typeof( IService ), binding, "" ).Behaviors.Add( behavior );
host.Open();
这是在Windows 7 64位上从C#自托管。
我已将防火墙例外和程序添加到netsh ACL。
我可以从客户端设备ping主机设备。
如果我通过LAN IP而不是localhost,我仍然可以从主机设备访问它。
我已经向Service类添加了一个无参数构造函数和终结器,它打印到Console,因此我可以判断它是否以及何时由WCF构造。在本地访问时会发生这种情况,但不会从同一LAN上的其他设备访问,这表明问题在于绑定到我身上。
谢谢。
答案 0 :(得分:0)
解决;问题在于使用中的路由器似乎是彼此之间的防火墙用户。使用其他路由器或以太网电缆。