Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提高Silverlight对WCF服务的请求时间?_Silverlight_Wcf_Performance - Fatal编程技术网

如何提高Silverlight对WCF服务的请求时间?

如何提高Silverlight对WCF服务的请求时间?,silverlight,wcf,performance,Silverlight,Wcf,Performance,我在Silverlight应用程序的解决方案中有一个Silverlight项目。我还有一个WCF服务托管在同一个解决方案中,该解决方案向Silverlight应用程序公开了一些方法 当我从Silverlight调用服务方法时,需要4秒钟才能到达服务方法 为什么会这样,我该如何改进 我已将时间记录在对象列表中。我将DateTime添加到每个步骤的集合中,然后计算每个步骤的到达时间。我正在通过服务代理进行呼叫。您所有的Web服务呼叫都需要4秒钟吗?第一个可能会更长,因为应用程序正在启动,但之后,延迟

我在Silverlight应用程序的解决方案中有一个Silverlight项目。我还有一个WCF服务托管在同一个解决方案中,该解决方案向Silverlight应用程序公开了一些方法

当我从Silverlight调用服务方法时,需要4秒钟才能到达服务方法

为什么会这样,我该如何改进


我已将时间记录在对象列表中。我将
DateTime添加到每个步骤的集合中,然后计算每个步骤的到达时间。我正在通过服务代理进行呼叫。

您所有的Web服务呼叫都需要4秒钟吗?第一个可能会更长,因为应用程序正在启动,但之后,延迟应该受到Web服务逻辑的限制


您能否使用fiddler、firebug或IE开发工具更好地监控您的服务调用?

您所有的Web服务调用是否都需要4秒钟?第一个可能会更长,因为应用程序正在启动,但之后,延迟应该受到Web服务逻辑的限制


您是否可以使用fiddler、firebug或IE Dev工具更好地监视服务调用?

基本上,如果您正在调试(您说您正在调试),则由于加载DLL以运行服务,会产生巨大的开销。打开输出窗口,查看在启动服务时Dev Studio有多忙

调试环境不是实际性能的良好指标。

  • 运行服务一次后刷新Silverlight应用程序页面。这意味着Dev studio已经加载了服务DLL

  • 尝试运行安装在本地IIS下的应用程序,以更好地了解它的性能,但是,您将看到真正的速度问题的唯一方法是从您的实时站点运行它并在那里测试速度


  • 基本上,如果您正在调试(您说您正在调试),那么在加载DLL以运行服务时会有巨大的开销。打开输出窗口,查看在启动服务时Dev Studio有多忙

    调试环境不是实际性能的良好指标。

  • 运行服务一次后刷新Silverlight应用程序页面。这意味着Dev studio已经加载了服务DLL

  • 尝试运行安装在本地IIS下的应用程序,以更好地了解它的性能,但是,您将看到真正的速度问题的唯一方法是从您的实时站点运行它并在那里测试速度


  • 服务调用位于应用程序流的中间。它位于Silverlight应用程序流的中间。您的Web服务位于服务器上。如果在您监视的web服务调用之前没有进行其他web服务调用,并且在web应用程序回收之后,必须重新启动(服务器上的)web应用程序。要检查这一点,请在第一次响应后再次执行服务呼叫。如果第二次调用与第一次调用花费的时间相同,那么您的Web服务逻辑应该是罪魁祸首。(我假设根本原因不是网络速度慢或Web服务传输的数据量。)服务调用位于应用程序流的中间,它位于Silverlight应用程序流的中间。您的Web服务位于服务器上。如果在您监视的web服务调用之前没有进行其他web服务调用,并且在web应用程序回收之后,必须重新启动(服务器上的)web应用程序。要检查这一点,请在第一次响应后再次执行服务呼叫。如果第二次调用与第一次调用花费的时间相同,那么您的Web服务逻辑应该是罪魁祸首。(我假设根本原因不是网络速度慢或Web服务传输的数据量。)这是处于调试状态,还是在实际将其部署到网站之后?@HiTechMagic处于调试状态,即在开发端。您的问题中有很多地方不清楚。你是怎么测量的。总是4秒还是第一次。也许它执行4秒?你在本地测试吗?VisualStudio是否用于托管?等等。提供更多信息。我同意Valentin的观点。您是否只呼叫您的服务一次或多次?这是处于调试状态,还是在实际将其部署到网站之后?@HiTechMagic处于调试状态,即在开发端。您的问题中有很多不清楚的地方。你是怎么测量的。总是4秒还是第一次。也许它执行4秒?你在本地测试吗?VisualStudio是否用于托管?等等。提供更多信息。我同意瓦伦丁的观点。你只给你的服务打一次电话,还是多次?