WCF中的服务实例
我正在使用perfmon检查我的服务行为。我要做的是在不同的机器上启动6个客户端应用程序实例,并以120个线程(每个客户端应用程序20个线程)向服务器发送请求WCF中的服务实例,wcf,Wcf,我正在使用perfmon检查我的服务行为。我要做的是在不同的机器上启动6个客户端应用程序实例,并以120个线程(每个客户端应用程序20个线程)向服务器发送请求 我检查过计数器和最大实例数(我使用SurvestMead和Stand Stand数为100)是12,我认为奇怪的是,我的服务响应时间大约在120秒内…我认为实例数量的增加会导致WCF创建更多的实例,因此响应时间会更快 知道WCF为什么不创建更多的服务实例吗 感谢Pawel您可能需要参考并调整WCF配置(特别是maxConnections)
我检查过计数器和最大实例数(我使用SurvestMead和Stand Stand数为100)是12,我认为奇怪的是,我的服务响应时间大约在120秒内…我认为实例数量的增加会导致WCF创建更多的实例,因此响应时间会更快
知道WCF为什么不创建更多的服务实例吗感谢Pawel您可能需要参考并调整WCF配置(特别是maxConnections),以获得所需的连接数 考虑使用类似于点击服务的东西
此外,perfmon只会帮你做到这一点。如果要调试WCF服务,应查看Windows SDK中的SvcTraceViewer和SvcConfigEditor。关于服务绑定,您将maxconnections设置为什么?一旦达到限制,连接调用将被阻止 我想默认值是10
默认情况下,WCF服务会受到限制-这是一种服务行为,您可以轻松调整 看 以下是默认设置:
<serviceThrottling
maxConcurrentCalls="16"
maxConcurrentInstances="Int.MaxValue"
maxConcurrentSessions="10" />
通过这些设置,您可以轻松控制可以处理多少会话或并发调用,并且可以确保您的服务器不会被(欺诈性)请求压垮,不会屈服。Ufff,理解愚蠢WCF的最后一次尝试 我现在做的是:
- 创建启动20个线程的客户机,每个线程在一个循环中向服务发送请求。服务器上的性能计数器声称始终只创建了服务对象的2个实例。平均请求时间约为40秒(我在代理调用之前开始测量,在调用返回之后结束)
- 修改该客户机以启动5个线程并启动该客户机的4个实例(以模拟上一示例中的20个线程行为)。性能监视器显示始终创建服务对象的8个实例。平均请求时间为20秒
通道工厂在每个线程中创建。我使用用户定义的绑定。当我将该配置属性添加到绑定配置中时,会出现一个get异常:无法识别的属性“maxConnections”啊,ok basicHttpBinding是无连接的,因此没有该属性。你试过上面马克建议的节流阀吗?是的,我试过了。客户端可能有限制/限制设置?再一次:我在不同的机器上的6个实例中的每一个中运行20个线程…maxConnections属性?我应该在哪里使用它?要绑定配置吗?