WCF Restful服务性能不佳

时间:2011-06-20 21:54:37

标签: c# wcf performance service

我的wcf restful服务只能提供2个请求/秒!

详述:

我创建了一个wcf restful服务,它只通过GET动词公开一个方法。 该方法没有逻辑,并立即返回。

我还创建了一个测试客户端,以检查服务吞吐量和性能,这是WebHttpRequest发出的请求。

该服务每秒只能处理2个请求!

我也通过浏览器向服务发出了请求,结果相同:一个请求500毫秒。

然后我将服务绑定更改为netTcpBinding,并且该服务能够处理大约2000个请求/秒。

该服务在Windows服务下运行,并由WebServiceHost使用WebHtppBinding托管。

很高兴提到客户端和服务都在同一台服务器上运行。

wcf restful service的性能如此糟糕是否有意义?

会感激任何帮助。感谢。

1 个答案:

答案 0 :(得分:4)

不,这没有任何意义,可能会指出您的测试存在问题。您的REST测试客户端是如何编写的?您是否知道,默认情况下,.NET只允许两个打开到任何域的连接以进行“常规”.NET进程?对于ASP.NET应用程序,它会自动增加到 10

这些信息记录在ServicePointManager.DefaultConnectionLimit中。您可以通过为要尝试连接的域添加更高限制来以编程方式或through config增加此值。配置明智,这看起来像这样:

<system.net>
    <connectionManagement>
        <add address="www.myserver.com" maxconnection="20" />
    </connectionManagement>
</system.net>

如果您愿意,可以使用address="*"打开所有域的连接。

至于您看到的延迟,可能是默认启用的其他功能的结果,例如UseNagleAlgorithm,或者,如果您的POST,Expect100Continue