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

C# 托管在控制台应用程序中的WCF服务,c#,wcf,.net-4.0,console-application,self-hosting,C#,Wcf,.net 4.0,Console Application,Self Hosting,托管在控制台应用程序中的WCF服务可以处理多少负载?它能像IIS上承载的WCF一样处理传入请求吗 补充说明: 请求能否同时到达 我有一个WCF服务托管在控制台应用程序中。我从web应用程序中调用此WCF服务。该web应用可能同时有数百个请求 我模拟了大量请求,但我无法确定承载WCF服务的控制台应用程序是否实际同时或按顺序响应这些请求。WCF服务位于何处并不重要。这完全取决于绑定、端点、端点行为和服务行为设置,最后但并非最不重要的是,取决于您为服务设置实例模式和并发类型的方式(通过属性) 这些设置

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

补充说明: 请求能否同时到达

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


我模拟了大量请求,但我无法确定承载WCF服务的控制台应用程序是否实际同时或按顺序响应这些请求。

WCF服务位于何处并不重要。这完全取决于绑定、端点、端点行为和服务行为设置,最后但并非最不重要的是,取决于您为服务设置实例模式和并发类型的方式(通过属性)

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

有关您感兴趣的内容,请参阅(并发和节流)。还有,一些非常重要的事情

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

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

尽可能多地使用您的计算机来提供自托管WCF服务


主机可以是控制台应用程序或windows服务,这无关紧要,从负载角度看,它们是相同的。

您可以使用类似loadui的东西来加载测试服务。您还可以将wcf配置为并发处理请求。一个快速的谷歌应该可以帮你上路了。@abatishchev谢谢你的编辑。在我的情况下,singleton似乎是不可能的,因为很多应用程序每分钟都会发出很多请求。@KavehShahbazian:有多少请求并不重要。可能是千/秒。只要您在服务中不保留任何状态或某种自定义会话(例如静态集合,其中一些数据被所有请求更改和读取),您就可以了。