我在使用WCF服务时遇到了性能问题。当一个wcf客户端连接到该服务时,为什么这么慢?
这里的故事:
我写的这是由一个控制台应用程序托管的自承载WCF服务;
我写了一个简单的客户端来使用服务;
WCF服务运行后,客户端需要15秒以上才能创建与服务的连接。
WCF服务非常简单,就像“Hello World”一样。这是正常的吗?
我在使用WCF服务时遇到了性能问题。当一个wcf客户端连接到该服务时,为什么这么慢?
这里的故事:
我写的这是由一个控制台应用程序托管的自承载WCF服务;
我写了一个简单的客户端来使用服务;
WCF服务运行后,客户端需要15秒以上才能创建与服务的连接。
WCF服务非常简单,就像“Hello World”一样。这是正常的吗?
这应有助于: http://msdn.microsoft.com/en-us/library/aa751883.aspx
如果你在IIS托管,需要一段时间来启动不管。
我没有设计任何序列化/反序列化方法,只是从服务返回一个整数值。该服务托管在控制台应用程序中。 – Karla 2010-10-28 09:22:35
WCF拥有自己的合约[de]序列化器 - 即使您只是发送基本数据类型。话虽如此,无论我尝试过什么,WCF的第一次创业一直在我的系统上缓慢。我使用IIS托管,因此只需关闭定期应用程序池循环。 – 2010-10-28 09:51:18
一种方法可能是添加自己的warmup脚本;在初始加载时调用您的服务的脚本。
虽然,this answer可能对您有所帮助,通常情况下,第一次访问服务速度较慢,但连续访问时间在一两秒钟内。
第一个慢响应与服务程序集的JIT编译有关;这意味着它的正常。
我们的经验相同,我发现客户端在实际打开TCP连接之前睡了14秒。
一个简单的调用
binding.UseDefaultWebProxy = false;
解决了这个。
您是否在Internet信息服务中托管WCF服务? – 2010-10-28 08:29:28
不,它由控制台应用程序托管 – Karla 2010-10-28 09:23:54