使用单个合同运行 ServiceHost 可以正常工作,如下所示:
servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.Open();
现在我想添加第二份(第 3、第 4、...)合同。我的第一个猜测是添加更多这样的端点:
servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.AddServiceEndpoint(typeof(IMyService2), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService2");
servicehost.Open();
但是当然这不起作用,因为在创建 ServiceHost 时我可以将 MyService1 作为参数或 MyService2 传递 - 所以我可以向我的服务添加很多端点,但都必须使用相同的合同,因为我只能提供一种实现?
我觉得我错过了重点,在这里。当然必须有某种方法为我添加的每个端点合同提供实现,或者不?