我在使用WCF服務時遇到了性能問題。當一個wcf客戶端連接到該服務時,爲什麼這麼慢?
這裏的故事:
我寫的這是由一個控制檯應用程序託管的自承載WCF服務;
我寫了一個簡單的客戶端來使用服務;
WCF服務運行後,客戶端需要15秒以上才能創建與服務的連接。
WCF服務非常簡單,就像「Hello World」一樣。這是正常的嗎?
我在使用WCF服務時遇到了性能問題。當一個wcf客戶端連接到該服務時,爲什麼這麼慢?
這裏的故事:
我寫的這是由一個控制檯應用程序託管的自承載WCF服務;
我寫了一個簡單的客戶端來使用服務;
WCF服務運行後,客戶端需要15秒以上才能創建與服務的連接。
WCF服務非常簡單,就像「Hello World」一樣。這是正常的嗎?
這應有助於: http://msdn.microsoft.com/en-us/library/aa751883.aspx
如果你在IIS託管,需要一段時間來啓動不管。
我沒有設計任何序列化/反序列化方法,只是從服務返回一個整數值。該服務託管在控制檯應用程序中。 – Karla 2010-10-28 09:22:35
WCF擁有自己的合約[de]序列化器 - 即使您只是發送基本數據類型。話雖如此,無論我嘗試過什麼,WCF的第一次創業一直在我的系統上緩慢。我使用IIS託管,因此只需關閉定期應用程序池循環。 – 2010-10-28 09:51:18
一種方法可能是添加自己的warmup腳本;在初始加載時調用您的服務的腳本。
雖然,this answer可能對您有所幫助,通常情況下,第一次訪問服務速度較慢,但連續訪問時間在一兩秒鐘內。
第一個慢響應與服務程序集的JIT編譯有關;這意味着它的正常。
我們的經驗相同,我發現客戶端在實際打開TCP連接之前睡了14秒。
一個簡單的調用
binding.UseDefaultWebProxy = false;
解決了這個。
您是否在Internet信息服務中託管WCF服務? – 2010-10-28 08:29:28
不,它由控制檯應用程序託管 – Karla 2010-10-28 09:23:54