我正在编写一个托管一堆 WCF 服务的 Windows 服务。我正在使用 NINJECT 来使用工作正常的拦截器进行 AOP。我只是想知道我的实现是否能承受更高的负载。事情是这样的:
在我的 program.Main() 方法中:
ServiceBase[] servicesToRun = { kernel.Get<WcfServiceHostService>() };
ServiceBase.Run(servicesToRun);
还有一个 WcfServiceHostService 构造函数,它接受注入的接口:
public WcfServiceHostService(IVakService vakService, IRoosterService roosterService) : this()
{
var serviceList = new List<ServiceHost> { new ServiceHost(vakService), new ServiceHost(roosterService) };
this.Services = serviceList;
}
问题是 - ServiceHost 构造函数方法可以用作通用的 new ServiceHost 或类似 new ServiceHost(SingletonInstance) (http://msdn.microsoft.com/en-us/library/system.servicemodel.servicehost.aspx) - 我的问题:通过提供实例而不是类型,从而迫使接口实现成为单例 - 我不是对性能产生负面影响吗?
PS 难道 IIS 不是托管 WCF 服务的更好选择吗?