C# ServiceHost 似乎忽略了来自 VM 中主机的连接
C# ServiceHost seemingly ignores connections from host in VM
我已经从 WSDL 实现了一个非常基本的服务,我正在使用 ServiceHost
对象为它提供服务,它似乎在本地工作。我用来 提供服务 的代码是这样的:
static void Main(string[] args)
{
Uri httpUri = new Uri("http://192.168.18.1:8080/");
using (ServiceHost hService = new ServiceHost(typeof(TritonClientClient), httpUri))
{
// hService.AddServiceEndpoint(typeof(ITritonClient), new BasicHttpBinding(), "http://localhost:8000/BasicService");
hService.Open();
Console.WriteLine("Listening. Press any key to close...");
Console.ReadLine();
Console.WriteLine("Closing...");
hService.Close();
}
}
它似乎在本地工作,因为我可以浏览到 http://192.168.18.1:8080/?wsdl
并获得服务描述文件。
问题是我需要从虚拟机(使用VMware)访问这个服务。这台机器配置了一个 "host-only" 网络适配器,我可以从来宾 ping 主机,反之亦然。但是,我无法像直接从主机访问服务那样从浏览器访问该服务。
在主机中使用 Wireshark 我可以看到来宾试图启动 TCP 握手,但没有人回答:
备案,主机IP为192.168.18.1,客人IP为192.168.18.128。我需要在 ServiceHost
中做些什么才能响应虚拟机的请求吗?
确保您的防火墙设置没有阻止主机上的端口 8080。
我已经从 WSDL 实现了一个非常基本的服务,我正在使用 ServiceHost
对象为它提供服务,它似乎在本地工作。我用来 提供服务 的代码是这样的:
static void Main(string[] args)
{
Uri httpUri = new Uri("http://192.168.18.1:8080/");
using (ServiceHost hService = new ServiceHost(typeof(TritonClientClient), httpUri))
{
// hService.AddServiceEndpoint(typeof(ITritonClient), new BasicHttpBinding(), "http://localhost:8000/BasicService");
hService.Open();
Console.WriteLine("Listening. Press any key to close...");
Console.ReadLine();
Console.WriteLine("Closing...");
hService.Close();
}
}
它似乎在本地工作,因为我可以浏览到 http://192.168.18.1:8080/?wsdl
并获得服务描述文件。
问题是我需要从虚拟机(使用VMware)访问这个服务。这台机器配置了一个 "host-only" 网络适配器,我可以从来宾 ping 主机,反之亦然。但是,我无法像直接从主机访问服务那样从浏览器访问该服务。
在主机中使用 Wireshark 我可以看到来宾试图启动 TCP 握手,但没有人回答:
备案,主机IP为192.168.18.1,客人IP为192.168.18.128。我需要在 ServiceHost
中做些什么才能响应虚拟机的请求吗?
确保您的防火墙设置没有阻止主机上的端口 8080。