2012-04-04 43 views
1

我有一個Windows Phone應用程序,它使用WCF服務來獲取和存儲數據在數據庫上。 我添加了對WCF服務的服務引用,並且VS生成了客戶端代理和配置文件。WCF通過Windows手機在第一時間不工作

當我嘗試調用服務器上的方法時,問題就開始了。

第一次調用會導致超時,服務器甚至不會收到請求。 只有在第二個調用服務器收到請求。

Win7MobileServiceClient client = new Win7MobileServiceClient(); 

client.GetUserCompleted += new EventHandler<ServiceReference1.GetUserCompletedEventArgs>(client_GetUserCompleted); 

client.GetUserAsync(int.Parse(txtID.Text)); 

感謝

回答

0

這可能是由於服務的預熱過程。 第一次調用WCF服務需要一些時間(我認爲正在編譯它)。如果您回收應用程序池,它會再次發生。

爲了確保試試這個

  1. 部署WCF服務從窗口
  2. 調用WCF服務
  3. 從移動

窗口調用它。如果是這種情況可能的原因是在Windows Mobile客戶端的默認超時可能小於stantaderd(1分鐘)。有一些解決方案,你可以不喜歡

  • 增加的Windows Mobile超時
  • 調用服務每次你部署(例如有某種硒冒煙測試的。這種方法的問題,你會具有應用程序池回收後再次同樣的問題)

您可以檢查此類似的問題:WCF Performance Slow for the first call

+0

我不認爲這是問題。如果我嘗試連續調用該方法兩次,該方法按預期工作。 – user556882 2012-04-04 13:08:54

+0

然後...你有一個問題:) 嘗試比較客戶端和服務的app.config,並檢查緩衝區大小和消息大小。 – 2012-04-04 13:58:39

+0

也許在連續兩次調用emthod給服務器建立時間。 說超時時間爲10秒,需要11秒才能建立..第一次調用失敗,但第二次工作,因爲它是1秒構建+ 1秒執行... – 2012-04-04 14:13:58