我目前正在尝试将一个简单的基于 WCF 的 Web UI 添加到现有应用程序中,以便可以使用 Web 浏览器通过同一 LAN 上的任何设备远程控制某些方面。(例如,通过 WiFi 从 30 英尺外的手机或平板电脑)这在大多数情况下都有效,至少在同一台机器上,但如果我尝试从任何其他设备连接,它就会超时。
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,我仍然可以从主机设备访问它。
我已经向打印到控制台的服务类添加了一个无参数构造函数和终结器,这样我就可以判断它是否以及何时由 WCF 构造。当本地访问但不是从同一 LAN 上的其他设备访问时会发生这种情况,这表明问题出在与我的绑定上。
谢谢你。