我有一个接口-实现对,我想使用WebServiceHost将它们转换为服务。但是,WebServiceHost需要一个实现所有契约的实例或类型。我考虑过在WCF中挂钩到IInstanceProvider,这样我就可以基于消息属性创建特定的实例,但是如果没有实例或类型,就不可能创建WebServiceHost。这是否可能,或者我是否应该为我的每个接口-实现对创建多个WebServiceHost实例?另外,在相同的主机和端口上创建大量(大约上百个) WebServiceHost实例,但是在不同的URL上创建,会有什么影响吗?
发布于 2014-05-13 20:34:42
查看WebServiceHost的MSDN文档,我相信您必须创建多个WebServiceHost实例
在具有不同url的相同主机/端口上托管N个服务对托管没有任何影响。例如,您可以使用以下示例托管所有服务,并且这些服务应该正确托管
http://localhost:1234/MyService1
http://localhost:1234/MyService2
http://localhost:1234/MyService3
...
http://localhost:1234/MyService100这里的问题是服务器的可伸缩性。您正在谈论的是拥有近百个WebServiceHost。如果所有服务都是轻量级的,并且不创建任何大型数据对象,那么您可能没有任何问题。但是,如果这些服务中的每一个都创建/缓存大量对象,那么您可能会遇到内存问题。另外,如果所有服务都是CPU密集型的,那么您可能必须限制请求。
唯一的方法就是对你的服务进行负载测试。
https://stackoverflow.com/questions/23627326
复制相似问题