客户端站点:Windows窗体
服务器站点:.net 2.0 asmx。 IIS 7,赢得2008 R2。
首次呼叫定义:IIS重新启动或应用池已回收。
对IIS中托管的Web服务的第一次调用非常缓慢,大约需要20秒钟。
后续通话很快,不到1秒。客户端应用程序的新实例也执行相同(快速)。
我在客户端app.config中设置了useDefaultWebProxy = false,bypassProxyOnLocal = true,我从互联网上的variuos来源了解到这一点。
我通过在客户端PC中运行客户端应用程序(第一次调用webservice)进行了测试,并且正如预期的那样,它很慢。然后我在Server PC中运行客户端应用程序(第二次调用webservice),它很快。
反之亦然,如果客户端应用程序首先在服务器中执行(第一次调用,它很慢),第二次在客户端PC中运行客户端应用程序(第二次调用)很快。
从上面的场景中,我试图说网络代理可能不是这里的问题..
我已将“Generete序列化程序集”设置为On以及Web服务项目的属性。
无论如何要改善这个吗?
答案 0 :(得分:0)
可能有多种原因导致初始化缓慢。最值得注意的是:
如果您使用的是EntityFramework,我唯一的建议是更新Entity Framework的版本,这将要求您也使用较新版本的.NET。
答案 1 :(得分:0)
对于第一个请求,IIS必须唤醒(或初始化)某个进程来处理请求,这会导致第一次响应很长时间。
更容易和最常见的方法是第一次忍受,并定期ping您的网站以保持这些进程被唤醒。我认为有一些很好的Ping服务。