winform客戶端程序第一次調用webservice方法很慢的解決方法


  .net2.0的winform客戶端最常用的與服務端通信方式是通過webservice,最近在用dottrace對客戶端做性能測試的時候發現,客戶端程序啟動以后,第一次調用某一個webservice的方法是,總是特別慢,大概需要0.8-1秒鍾的時間,而接下來掉其他方法就很快了,都只需要幾十毫秒。google了一把,找到解決辦法:

  在應用程序的config文件中加入以下配置節:

<system.net>
    <defaultProxy enabled="false" useDefaultCredentials="false">
      <proxy/>
      <bypasslist/>
      <module/>
    </defaultProxy>
  </system.net>

或者在程序入口加入以下代碼:

HttpWebRequest.DefaultWebProxy = null;

  msdn上的解釋:

屬性

 
元素 說明

enabled

指定是否使用 Web 代理。默認值為 true

useDefaultCredentials

指定是否使用此主機的默認憑據訪問 Web 代理。默認值為 false

子元素

 
元素 說明

bypasslist

提供一組正則表達式來描述不使用代理的地址。

module

向應用程序添加新的代理模塊。

proxy

定義代理服務器。

父元素

 
元素 說明

system.net

包含指定 .NET Framework 與網絡的連接方式的設置。

  據我的理解,由於web代理默認是開啟的,也就是HttpWebRequest.DefaultWebProxy的值不為null,而這個DefaultWebProxy是一個全局變量。故第一次調用webservice方法的時候只有等這個默認代理超時以后才能繞過,所以第一次比較慢。

  更多介紹請參考這里,還有這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM