WebServiceHost具有单独的合同和实现

时间:2014-05-13 09:21:57

标签: wcf

我有一个接口实现对,我想使用WebServiceHost将它们转换为服务。但是,WebServiceHost需要一个实现所有合同的实例或类型。我考虑过挂钩到WCF中的IInstanceProvider,这样我就可以根据Message属性创建特定的实例,但是如果没有实例或类型,就无法创建WebServiceHost。无论如何这是可能的,还是应该为每个接口实现对创建多个WebServiceHost实例?在同一主机和端口上创建大量(大约一百个)WebServiceHost实例但是不同的URL也有任何损失吗?

1 个答案:

答案 0 :(得分:0)

查看WebServiceHost的MSDN文档,我相信您必须创建WebServiceHost的多个实例

使用不同的网址在同一主机/端口上托管n个服务对托管没有任何影响。例如,您可以使用下面的示例托管所有服务,并且它们应该正确托管

http://localhost:1234/MyService1
http://localhost:1234/MyService2
http://localhost:1234/MyService3 
...
http://localhost:1234/MyService100

这里的问题是服务器的可扩展性。你说的是接近一百WebServiceHost。如果所有服务都很轻,并且没有创建任何大型数据对象,那么您可能没有任何问题。但是如果这些服务中的每一个都创建/缓存了很多对象,那么您可能会遇到内存问题。如果所有服务都是CPU密集型的,那么您可能必须限制请求。

找到答案的唯一方法是加载服务测试。