2012-05-07 73 views
0

我將一個C#asp.net asmx web服務從ii6(32位)傳輸到windows 2008和iis7(64位)。我之前獲得了大約160毫秒的近似Web方法性能時間。在iis7上,即使將網絡方法減少到幾乎無法執行的代碼,我現在也可以獲得大約320毫秒的時間。我意識到第一個電話會有一個編譯時間。這個時間在大約20次通話之後,時間似乎已經穩定下來。升級後asmx web服務速度較慢

我想將運行web方法的時間從320 ms減少到200 ms以下。這有助於處理需要處理多個呼叫的情況。另一個問題是,當我在1秒鐘內加入20個電話時,有一次電話會花費大約3秒鐘的時間。這也是不可取的。

我試着在發佈模式下編譯,並從web.config中刪除了一個調試編譯。 .asmx文件只是引用要加載到dll二進制文件中的類。

不同之處在於,iis7配置爲顯示更詳細的錯誤消息以幫助進行設置。但是,由於這只是在發生錯誤時纔會發生,所以我不會看到它會如何減緩常規呼叫的速度。

我已經嘗試了集成管道模式和經典管道模式,並且仍然獲得了類似的時間。我也嘗試將默認編譯語言設置爲C#。我試着檢查ping時間來驗證它不是網絡。 IIS有一些數據庫連接從Web服務方法中有代碼的時候開始設置,但現在它基本上什麼都不做,我不認爲這應該是一個問題。

回答

0

fyi - 問題不是asmx,iis7,iis6,調試模式或管道模式。新的IIS7 64位服務器從一個內部IP地址開始,然後畢業到一個公共IP地址。由於網絡路由的差異,IP地址有所不同。 IIS6測試用例基於公共IP。一旦我使用公共ip爲IIS7服務器時間是相當相似的。