WCF中的服务实例

WCF中的服务实例,wcf,Wcf,我正在使用perfmon检查我的服务行为。我要做的是在不同的机器上启动6个客户端应用程序实例,并以120个线程(每个客户端应用程序20个线程)向服务器发送请求 我检查过计数器和最大实例数(我使用SurvestMead和Stand Stand数为100)是12,我认为奇怪的是,我的服务响应时间大约在120秒内…我认为实例数量的增加会导致WCF创建更多的实例,因此响应时间会更快 知道WCF为什么不创建更多的服务实例吗 感谢Pawel您可能需要参考并调整WCF配置(特别是maxConnections)

我正在使用perfmon检查我的服务行为。我要做的是在不同的机器上启动6个客户端应用程序实例,并以120个线程(每个客户端应用程序20个线程)向服务器发送请求

我检查过计数器和最大实例数(我使用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属性?我应该在哪里使用它?要绑定配置吗?