我已經從WSDL實現了一項非常基本的服務,我使用的是ServiceHost
對象,它似乎在本地工作。我使用代碼服服務是這樣的:C#ServiceHost似乎忽略了VM中主機的連接
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)訪問此服務。本機配置爲具有「主機專用」網絡適配器,並且我可以從來賓ping主機,反之亦然。但是,我無法直接從主機訪問瀏覽器中的服務。
在主機使用Wireshark的我可以看到客人試圖啓動TCP握手,但沒有人回答:
根據記錄,該主機的IP是192.168.18.1和來賓的IP是192.168.18.128。 ServiceHost
中有什麼我需要做的,所以它回答了VM的請求?
您是否在Windows防火牆中打開了此端口?本地測試意味着流量來自可信來源。從VM測試意味着它不會。因此有所不同。 –