2016-12-14 1 views
0

私は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を実行できます。しかし、私はホストから直接行うことができるので、ブラウザからサービスにアクセスすることはできません。私はTCPハンドシェイクを開始しようとしているゲストが、誰も留守番見ることができますホストでのWiresharkを使用して

:レコードの

Wireshark capture

は、ホストのIPは192.168.18.1で、ゲストのIPです192.168.18.128。私はServiceHostで何をしなければならないので、VMからの要求に答えますか?

+0

Windowsファイアウォールでこのポートを開きましたか?ローカルでのテストは、トラフィックが信頼できるソースから取得されたことを意味しますVMからのテストは、VMからのテストではありません。したがって違い。 –

答えて

0

ファイアウォールの設定がホストマシンのポート8080をブロックしていないことを確認してください。

+0

それだけでした。プライベートネットワーク用のファイアウォールは無効にしていましたが、Windowsでは192.168.x.xネットワークがパブリックネットワークだと思っています。家の窓に行って、あなたは酔っている。 –

関連する問題