是很慢的。情况与http://forums.silverlight.net/t/148027.aspx/1中列出的情况非常相似。像那张海报一样,我建立了一个简单的Silverlight应用程序项目和一个简单的控制台应用程序项目。在每个服务中,我添加了一个服务引用到我的WCF服务,并向该服务添加了一些测试调用。然而,每次通话所花费的时间却截然不同。控制台应用程序按毫秒级进行调用。 Silverlight应用程序可以在任何地方使用3-5秒。性能使用Silverlight调用我有一个问题,即调用Silverlight的一个WCF Web服务WCF服务
在我挂到上面的帖子,海报时改变了他的服务,使用二进制消息编码,速度差距消失。但是,在我的情况下,无论我使用的是二进制消息编码还是文本消息编码,速度差距都很大。
什么能解释这种速度差?我已经通过fiddler验证过,当我将它配置为使用我的二进制端点时,请求和响应都进行了二进制编码。我还证实,通过多次连续的Web服务调用,缓慢的速度依然存在,所以它不仅仅是起飞时间。问题必须在Silverlight方面。
这里的代码片段,我使用测量的时间差:(
var proxy = new WCFRef.WebServicesClient("binary");
var callbegin = DateTime.Now;
proxy.CallWSMethodAsync();
var callend = DateTime.Now;
var span = callend.Subtract(callbegin);
Debug.WriteLine("call time: " + span.Seconds + "." + span.Milliseconds + " sec");
在该代码捕获的时间跨度是我在谈论控制台之间的巨大差异跨度几毫秒)和SL(几秒钟)。