【发布时间】:2010-05-12 08:29:18
【问题描述】:
我有一个类TestService,它实现了两个服务契约,称为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();
我收到一个运行时错误:
HttpGetEnabled 属性 ServiceMetadataBehavior 设置为 true 并且 HttpGetUrl 属性是 相对地址,但没有http 基地址。要么提供一个http 基地址或将 HttpGetUrl 设置为 绝对地址。
我能做些什么呢?我真的需要两个独立的端点吗?
【问题讨论】:
标签: c# wcf multiple-inheritance servicecontract