TestService
とという2つのサービスコントラクトを実装するクラスがIService1
ありIService2
ます。しかし、私は実装の難しさに直面しています。
私のコードは次のようになります。
Uri baseAddress = new Uri("http://localhost:8000/ServiceModel/Service");
Uri baseAddress1 = new Uri("http://localhost:8080/ServiceModel/Service1");
ServiceHost selfHost = new ServiceHost(typeof(TestService));
selfHost.AddServiceEndpoint(typeof(IService1), new WSHttpBinding(), baseAddress);
selfHost.AddServiceEndpoint(typeof(IService2), new WSHttpBinding(), baseAddress1);
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
selfHost.Description.Behaviors.Add(smb);
selfHost.Open();
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
selfHost.Close();
次のような実行時エラーが発生します:
ServiceMetadataBehaviorのHttpGetEnabledプロパティはtrueに設定されており、HttpGetUrlプロパティは相対アドレスですが、httpベースアドレスはありません。httpベースアドレスを指定するか、HttpGetUrlを絶対アドレスに設定します。
私はそれについて何ができますか?本当に2つの別々のエンドポイントが必要ですか?