前提・実現したいこと
WCFのWebHttpBindingを使用したセルフホスト形式のサービスの通信を作っています。
このサービスが使用するポート番号を知りたいのです。
マイクロソフトに聞くのが筋でしょうか?
以下に該当のソースコードを記載します。
teratailの先輩方、よろしくお願いします。
該当のソースコード
C#
1 //--------------------------バインディング 2 WebHttpBinding binding = new WebHttpBinding(); 3 4 //--------------------------アドレス 5 Uri uri = new Uri(http://123.123.123.123:5000/TestService"); 6 7 //--------------------------エンドポイント 8 host = new ServiceHost(typeof(TestService), uri); 9 ServiceEndpoint se = host.AddServiceEndpoint(typeof(ITestService), binding, ""); 10 11 var behavior = new WebHttpBehavior(); 12 behavior.FaultExceptionEnabled = false; 13 behavior.HelpEnabled = true; 14 behavior.DefaultOutgoingRequestFormat = WebMessageFormat.Json; 15 behavior.DefaultOutgoingResponseFormat = WebMessageFormat.Json; 16 se.EndpointBehaviors.Add(behavior); 17 18 ServiceDebugBehavior debug = host.Description.Behaviors.Find<ServiceDebugBehavior>(); 19 debug.IncludeExceptionDetailInFaults = true; 20 21 ServiceMetadataBehavior metad = new ServiceMetadataBehavior(); 22 metad.HttpGetEnabled = true; 23 host.Description.Behaviors.Add(metad); 24 25 host.Open(); 26
試したこと
ルーターのポートを全部開放した上で、ファイアーウォールのポート番号の設定を変えながらアプリケーションが動作するか調べてみたところ、
ソースの中で意図的に使用しているポート番号5000以外にも56000から56999の範囲のポート番号を開放する必要がありました。
なぜか、この範囲のアドレスは固定ではなく、動的に変化しているようでした。
環境
Microsoft Windows 10 Pro (Version 1809)
Microsoft Visual Studio Community 2017(Version 15.9.4)
Microsoft .NET Framework(Version 4.7.03190)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/01 14:53