【发布时间】:2013-09-20 10:01:50
【问题描述】:
客户站点:Windows 窗体
服务器站点:.net 2.0 asmx。 IIS 7,赢得 2008 R2。
首次调用定义:IIS 已重新启动或应用程序池已回收。
对 IIS 中托管的 Web 服务的第一次调用总是很慢,大约需要 20 多秒。
后续调用很快,不到 1 秒。客户端应用程序的新实例也执行相同(快速)。
我在客户端 app.config 中设置了 useDefaultWebProxy = false, bypassProxyOnLocal = true,这是我从互联网上的各种来源了解到的。
我通过在客户端 PC 中运行客户端应用程序(第一次调用 web 服务)进行了测试,正如预期的那样,它很慢。然后我在服务器 PC 中运行客户端应用程序(第二次调用 web 服务),它很快。
反之亦然,如果客户端应用程序首先在服务器中执行(第一次调用,它很慢),那么第二次在客户端 PC 中运行客户端应用程序(第二次调用)会很快。
从上面的场景中,我想说网络代理可能不是这里的问题..
我在 Web 服务项目的属性中也将“Generete 序列化程序集”设置为 On。
还有什么可以改进的吗?
【问题讨论】:
-
您可能需要预热(预加载)托管您的服务的 Web 应用程序。请参阅ASP.NET Performance Overview 中的 Web 应用程序部分。
标签: c# web-services