托管在控制台应用程序中的 WCF 服务可以处理多少负载?它能否像 IIS 上托管的 WCF 一样处理传入请求?
附加说明:请求可以同时到达吗?
我有一个托管在控制台应用程序中的 WCF 服务。我从 Web 应用程序中调用此 WCF 服务。该网络应用程序可能同时有数百个请求。
我已经模拟了大量请求,但我无法确定托管 WCF 服务的控制台应用程序实际上是同时还是按顺序回答它们。
托管在控制台应用程序中的 WCF 服务可以处理多少负载?它能否像 IIS 上托管的 WCF 一样处理传入请求?
附加说明:请求可以同时到达吗?
我有一个托管在控制台应用程序中的 WCF 服务。我从 Web 应用程序中调用此 WCF 服务。该网络应用程序可能同时有数百个请求。
我已经模拟了大量请求,但我无法确定托管 WCF 服务的控制台应用程序实际上是同时还是按顺序回答它们。
WCF 服务的托管位置无关紧要。这一切都取决于绑定、端点、端点行为和服务行为设置,最后但并非最不重要的是,取决于您设置(通过属性)服务的实例化模式和并发类型的方式。
ServiceHost
这些设置由实例接管。即使它在控制台应用程序中运行,应用程序本身也只是一个容器,ServiceHost
它是根据您提供的设置为您的 WCF 服务创建运行时环境的容器。
对于您感兴趣的内容,请参见此处(并发和节流)。此外,关于 WCF 实例模式的内容非常广泛。
出于性能原因,我建议您使用单例服务,您可以通过 InstanceContextMode 指定该服务。如果你有数百个请求进来,如果为每个请求创建一个服务实例,它不会对并发有任何好处。您必须通过检查所有服务操作是否都是线程安全的来分析您的情况是否可能单例。
托管在控制台应用程序中的 WCF 服务可以处理多少负载?
尽可能多地为自托管 WCF 服务提供您的计算机。
主机可以是控制台应用程序或 Windows 服务,没关系,从负载角度来看它们是相同的。