WPF客户端谈到ASMX服务巨大的性能打击为什么?

时间:2011-07-25 11:12:27

标签: wpf asmx

我有一个WPF桌面应用程序(.NET 4.0),它与使用.NET 2.0编写的现有asmx服务进行通信 以下是我们用于访问服务的代码

 Stopwatch s = new System.Diagnostics.Stopwatch();
    s.Start();             
    APMService svc = new APMService();
    UserInfoExtended[] Users = svc.FindAllUsers(LicenseKey);
    s.Stop();
   TimeSpan ts = s.Elapsed;
   string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                     ts.Hours, ts.Minutes, ts.Seconds,
                     ts.Milliseconds / 10);
    MessageBox.Show("WS CALL" + " :  " + elapsedTime);
return Users;

好的,现在当我第一次运行此代码时(它连接到一个按钮点击),大约需要19秒。当我再次单击该按钮时,只需不到一秒钟。这是100%的重复。令我困惑的是我为webservice(.NET 2.0)编写了一个控制台客户端,每次只需不到一秒钟。我在这里错过了什么 这是WPF的事吗?它与asmx服务的(de)序列化器交互的方式。该服务是否在.NET 2.0上导致问题 欢迎任何建议 谢谢

1 个答案:

答案 0 :(得分:0)

我要做的第一件事是启动Fiddler监控实际请求。这允许您查看延迟是在实际调用中还是在代理类中。 如果它在通话中,您应该在服务中寻找解释。如果没有,请尝试在Visual Studio中分析代码。它可以让您对代码中的延迟位置有所了解。