我有一個Silverlight 4應用程序,它與WCF服務有很大關係。應用程序通常運行良好,對於一些重要的查詢,響應時間也很快。然而,最近它變得很慢,而且我很難排除原因。Silverlight/WCF應用程序突然傳輸速度非常緩慢
我的數據庫託管在遠程服務器上。該應用程序託管在同一臺服務器上。以下是我已經指出:
當我在本地運行的應用程序,使用ASP.NET作爲我的服務器而不是IIS,和我打通過本地主機的網站,該網站點擊遠程數據庫,速度快。
當我在本地運行應用程序,但使用遠程WCF服務而不是本地服務時,事情很慢。
當我通過Web運行應用程序時(即遠程應用程序又與數據庫位於同一臺服務器上,因此它們彼此是本地的),應用程序運行緩慢。這幾乎是什麼生產環境是...
當我登錄到服務器,並從服務器內擊中網站,事情是快速的。
對數據庫的查詢速度很快。手動在數據庫上運行查詢,會在瞬間產生結果。
使用WCFTestClient並擊中遠程WCF服務也非常快,並且幾乎立即轉身。
最後,當我用我的本地機器的擊中網站在網上,它訪問數據庫等預期的設置:
- 並不是所有的查詢做出同樣的反應。一些導致大數據集的較重查詢實際上有一個快速的響應時間。一些輕量級查詢 - 不帶連接的直接SELECT語句只生成一千字節的數據,需要更長的時間...大約30秒。有幾個查詢有時很快,有時很慢,但總是很慢的查詢是最差的。
關於服務器:
服務器是一個專用的服務器,我監視的CPU,它不是被任何徵稅。我正在使用IIS 7,Win Server 2K8和Sql Server 2K8。在過去的幾周裏,唯一改變的就是Windows的一些更新,一個人告訴我他們做了一些防火牆更改 - 這是我目前關於這個原因的理論,但我不知道還有什麼可以嘗試在這一點上,或者如何表明它是防火牆..
有什麼想法?