WCF服务托管在控制台应用程序中

时间:2012-07-02 09:00:16

标签: c# wcf .net-4.0 console-application self-hosting

托管在控制台应用程序中的WCF服务可以处理多少负载?它可以像在IIS上托管的WCF一样处理传入的请求吗?

附加说明: 请求可以同时到达吗?

我在控制台应用中托管了WCF服务。我在Web应用程序中调用此WCF服务。该Web应用程序可能同时有数百个请求。

我已经模拟了一大堆请求但我无法确定托管WCF服务的控制台应用程序是否实际同时或顺序地回答它们。

2 个答案:

答案 0 :(得分:7)

托管WCF服务的位置无关紧要。这一切都取决于绑定,端点,端点行为和服务行为设置,最后但并非最不重要的是,您设置(通过属性)服务的实例化模式和并发类型的方式。

这些设置由ServiceHost实例接管。即使它在控制台应用程序中运行,应用程序本身也只是ServiceHost的容器,它是根据您提供的设置为WCF服务创建运行时环境的容器。

对于您感兴趣的内容,请参阅here(并发和限制)。此外,非常extensive on WCF instance modes

出于性能原因,我建议您使用单例服务,您可以通过InstanceContextMode指定该服务。如果您有数百个请求进入,如果为每个请求创建服务实例,则对并发性没有任何好处。您必须通过检查所有服务操作是否是线程安全的来分析单例是否可行。

答案 1 :(得分:1)

  

托管在控制台应用程序中的WCF服务可以处理多少负载?

您的计算机可以用于自托管WCF服务。

主机可以是控制台应用程序或Windows服务,无所谓,从加载角度看它们是相同的。