2011-03-30 33 views
0

我有一個ASMX Web服務,我通過HTTPS提供服務。經過一些測試後,我得出的結論是,Web服務在真實世界的情況下會變得難以忍受。通過HTTPS的我的ASMX Web服務非常慢。如何優化它?

我明白,使用HTTPS的開銷是不可避免的,但我想知道如何優化這個Web服務。我注意到的第一件事是,大部分的時間,我的Web Service返回的東西列出,例如(而不是從實際的Web服務所):

<Cars count="2"> 
    <Car brand="Mercedes" registrationplate="612M0D0"/> 
    <Car brand="BMW" registrationplate="4RS-73CHN1C4"/> 
</Cars> 

(平常count真實值40-50)

因此,兩種元素的類型的名稱(在這個例子中,Car)和它的屬性名稱(在這個例子中,brandregistrationplate)被重複過很多次。所有這些都表明在發送之前壓縮SOAP響應是個好主意。但我不知道這樣做。有人知道嗎?

回答

1

你確定什麼是慢

  • 數據量
  • 花費的時間訪問一個數據存儲請求和響應

第一步之間

  • 時間的請求數在優化是獲得指標,然後一旦你有這些攻擊o重要的。例如,對函數的調用可能是1ms,但如果您調用它2000次,則延遲可能是2s。所以在這種情況下,攻擊的次數可能是有序的。

    我建議使用像DotTrace這樣的工具來給你指標。

    編輯 看到這個這麼一個問題:HTTP vs HTTPS performance

  • +0

    無論請求的數量,也沒有用了訪問數據存儲所需的時間都是問題。我知道這一點,因爲Web服務在通過純HTTP進行測試時表現得相當令人滿意。問題主要在於數據量(響應返回更多數據的操作一直比較慢)以及加密/解密SOAP請求和響應所花費的時間(也與數據量成正比)。 – pyon 2011-03-30 22:08:10

    +0

    最後,我的測試設置(開發機器= Web應用程序的Web服務器= Web服務的Web服務器)非常**,與真實世界的情況不同(Web應用程序的Web服務器可能在另一個國家/地區託管,Web服務器的Web服務器必須在本地託管,因爲它必須訪問無法在線公開的數據庫),所以數字度量標準毫無價值。我沒有開發一些Web應用程序,以便每個人都使用互聯網連接,所以測試一切會是......呃......過度殺傷。 – pyon 2011-03-30 22:14:29