我是一名初級Asp.net開發人員,並且有一項有趣的任務。我正在主持一個Web服務。當客戶調用一種將某些數據保存到我們的數據庫的方法時,有時需要很長時間才能成功。通常〜5秒有時30 +秒。我不知道從哪裏開始。WebService方法有時需要太長時間
對我來說似乎是,它可以通過2 reasons
引起:
- 客戶有壞的互聯網連接。
- 我的數據庫超載
但我怎麼能證明或找到真正的原因是什麼?
我是一名初級Asp.net開發人員,並且有一項有趣的任務。我正在主持一個Web服務。當客戶調用一種將某些數據保存到我們的數據庫的方法時,有時需要很長時間才能成功。通常〜5秒有時30 +秒。我不知道從哪裏開始。WebService方法有時需要太長時間
對我來說似乎是,它可以通過2 reasons
引起:
但我怎麼能證明或找到真正的原因是什麼?
運行WCF跟蹤和數據庫跟蹤。在他們兩個之間,你應該能夠發現它是一個還是另一個。
kk,謝謝你會試試看。 –
嘗試profiling on SQL側檢查查詢執行。您也可以在服務器上使用wireshark來查看接收到的請求以及在一段時間內發生了什麼。檢查服務的代碼循環(可能是有一些遞歸檢查,檢查某些參數,如果該參數不是預期值 - 凍結並再次檢查)。
謝謝,會嘗試。 –
一種選擇是調試到Web服務代碼,客戶端擊中它。
如果需要很長的時間來打調試點,則客戶端有問題。
如果它迅速擊中調試,然後通過代碼,看看哪些步驟花費很長的時間。
在談到有關部署和託管到/ Windows服務器上高於2003年,有可能安裝的AppFabric,這對於在IIS監控和故障排除Web服務和Web應用程序的強大功能。
監控可以通過UI在IIS管理,並通過web.config文件進行配置。並且更好的是默認的IIS跟蹤功能。
如何實現它,我的意思是更好的描述如下:
http://msdn.microsoft.com/en-us/library/ee677277.aspx
也有使用的AppFabric分佈式緩存能力,當數據庫尤其是讀操作超載。
請先檢查您的請求執行的時間。然後決定配置文件或不數據庫。嘗試以這種方式設計你的架構,以避免保存後的阻塞,可能是異步響應,或者客戶端在保存完成時不總是應該等待。客戶可以稍後詢問儲蓄狀態,並且您不會阻止他。無論如何要了解確切的,更詳細的有關架構,或關於需求的要求。
或(3)可能參數嗅探 –
http://msdn.microsoft.com/en-us/library/ff647786.aspx – ZedBee
您在哪個操作系統上託管您的Web服務? Windows Server 2008? – Regfor