2013-04-18 153 views
8

我在.net winforms應用程序中調用.net webservice,都在framework 4.0中。在程序執行期間,web服務首次調用方法時,調用需要大約10-12秒。隨後的通話需要1-2秒。即使重新創建Web引用實例,後續調用仍然約1-2秒。當Winforms應用程序重新啓動時,第一次呼叫延遲再次發生,但隨後的呼叫響應。第一次調用.net webservice的速度很慢

Web引用的實例正在創建調用之前創建,而不是延遲的一部分。

用於winforms應用程序的XmlSerializers正在生成(並據我所知,但我不知道如何驗證這一點)。

由於Web服務端的首次運行編譯不會發生延遲。這是一整天都在使用的產品Web服務,其應用程序池仍在內存中。據我所知,延遲發生在客戶端,或者客戶端和服務器之間,而不是後來的調用。

不確定接下來要檢查什麼。有任何想法嗎?

+1

請記住,第一個電話將是較慢的,但是,它不應該是緩慢的。 – tier1

+1

我懷疑答案可能存在於這個問題/答案組合:http://stackoverflow.com/questions/6988981/webclient-is-very-slow特別是,我正在尋找代理問題。 – spender

+1

您是否在故障機器上的Internet選項中爲您的代理「自動檢測設置」? – spender

回答

9

由於花費者已經表明,該問題與代理檢測有關。在Internet Explorer中解決這個問題,但在我的情況下不可行。

相反,有一種解決方法可以繞過默認代理的使用,並因此自動檢測。

添加這些條目在app.config允許某些URL繞過代理:

<configuration> 
    <system.net> 
     <defaultProxy> 
      <bypasslist> 
       <add address="server/domain name" /> 
      </bypasslist> 
     </defaultProxy> 
    </system.net> 
</configuration> 

更多信息可以在這裏找到:<defaultProxy Element> on MSDN

+0

您有在桌面上運行的winforms客戶端應用程序,並且更改Internet Explorer選項有助於此?只是好奇心,請讓我知道! –

+0

@MareInfinitus:它本身並不是一個Internet Explorer選項,它是wininet API的一個選項,Internet Explorer也使用它並提供用於配置的GUI。 –

+0

爲我工作很好 –

0

我多次遭遇這個問題 - 我討厭它的人!大聲笑雖然我從來沒有決定性地解決它,你可以嘗試一些事情。首先,在啓動過程中撥打網絡服務,並首先獲得「痛苦」!其次,嘗試搞亂Web服務的IIS應用程序池 - 使其無法自行回收,或者至少在上午一個小時或可能每10000次請求中進行回收。

我知道這可能不是一個很好的答案,但希望它有一點幫助!


編輯:問題的

部分原因是Web服務不是「永遠」 - 它去,直到需要睡覺,再循環等。這將是值得關於保持Web服務活着,5 9s時間等!

+0

不會幫助。 OP在這個問題上勾選了這些問題。 – spender

+0

正確。 Apppool在這裏沒有關係。但感謝您的建議 –

+0

這個網絡服務,在我測試的時候,確實是「一直」。客戶每天從上午7點到晚上7點左右每秒撥打2-3次電話。我明白你說的關於應用程序池回收等等,但這不是這種情況。 –

-1

我已經在我的basicHttpBinding的添加這些設置,禁用自動代理檢測並在第一次執行時獲得很大的加速。這當然適用於內部網環境,或者你知道你根本不需要任何代理。

bypassProxyOnLocal = 「假」

useDefaultWebProxy = 「假」

希望這有助於。

+0

-1:OP使用ASMX(Web引用) –

2

嘗試代理設置爲空WebProxy,即:

request.Proxy = new WebProxy(); 

,或者您可以覆蓋config文件的代理服務器設置爲使用在system.net部分defaultProxy關鍵應用程序。以下禁用自動代理檢測:

<configuration > 
    <system.net> 
    <defaultProxy> 
     <proxy bypassonlocal="true" usesystemdefault="false" /> 
    </defaultProxy> 
</system.net> 
</configuration> 

http://weblog.west-wind.com/posts/2005/Dec/14/Slow-Http-client-calls-from-ASPNET-20-Make-sure-you-check-your-Proxy-Settings

相關問題