2014-10-01 45 views
0

我有一个WCF服务,我在我的内部网络上使用普通的BasicHttpBinding进行托管,没有任何安全性。WCF在Visual Studio中很慢,在SoapUI中快速

当我使用SoapUI测试服务中的某个方法时,它需要大约7ms的时间才能运行。

当我使用Visual Studio并让它为我存留服务引用时,大约需要500ms才能运行。

我的WCF服务托管在控制台应用程序中,并且我有问题的方法将服务端代码执行时间写出到控制台。它始终在7ms左右运行,即使我从Visual Studio调用它(这似乎与我在SoapUI中获得的时间相对应)。

很显然,使用.Net服务引用对象时肯定会有一些性能问题,但我不知道为什么。也许这是因为我没有在.Net为我掏出的客户端对象上设置一些东西?

有什么办法可以告诉是什么导致性能问题?

下面是我使用的基准在客户端代码:

 EnforcerServiceClient myClient = new EnforcerServiceClient(); //This is my service 

     DateTime dtStart; 

     for (int i = 0; i < 50; i++) 
     { 
      dtStart = DateTime.Now; 
      myClient.AddOrUpdateRecipient("session", new Recipient()); 

      Console.WriteLine(DateTime.Now.Subtract(dtStart).TotalMilliseconds); 
     } 

感谢。

斯科特

回答

0

通过提琴手和Wireshark运行后捕获它好像响应正在10ms内接收,但在Visual Studio中的基准仍是呈现500毫秒。

基于此,我知道一些东西一定是篡改了中间的沟通。事实证明,趋势科技病毒扫描程序有一个代理,HTTP通信正在通过并导致延迟。

SoapUI没有使用代理,但Visual Studio尊重它,这导致速度的差异。

我关闭了病毒扫描程序,现在服务正在快速运行。

相关问题