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。