0

我爲客戶開發本機Windows 10客戶端LOB應用程序。
環境:Windows 10 Pro(在移動客戶端/平板電腦和開發人員盒子上),Visual Studio 2015 Professional with Update 3,安裝的所有更新和修補程序。客戶端應用程序使用最新的「用於Windows 8 Universal和Windows 10 Universal平臺的IBM MobileFirst Platform SDK」版本8.0.2017012514。在我的網絡中的另一臺機器上,我擁有帶有Java適配器的MobileFirst Platform Server。MobileFirst 8.0 C#WorklightResourceRequest.Send()在設備處於脫機狀態時掛起

當應用程序聯機並且可以聯繫到MobileFirst Platform 8.0服務器時,該應用程序運行良好。

如果客戶端失去其網絡連接(例如WLAN無法訪問或MFP服務器脫機),則所有到服務器的請求都會無限期地掛起。請參見下面的示例C#代碼:

public async Task CallMethodMfp8() 
    { 
     Value = "Start MobileFirst Method Call " + DateTime.Now + "\n" + Value; 
     StringBuilder uriBuilder = new StringBuilder().Append("/adapters") 
      .Append("/MaximoAdapter") 
      .Append("/admin") 
      .Append("/heartbeat"); 
     WorklightResourceRequest rr = _client.ResourceRequest(new 
        Uri(uriBuilder.ToString(), UriKind.Relative), "GET", ""); 
     rr.Timeout = 500; 

     WorklightResponse resp = await rr.Send(); 

     if (!resp.Success) 
     { 
      Value = "NOT SUCCESSFULL " + resp.Message + "\n" + Value; 
     } 
     else 
     { 
      Value = "Request OK" + resp.ResponseText + "\n" + Value; 
     } 
     Value = "Method Call Finished " + DateTime.Now + "\n" + Value; 
    } 

如果設備處於脫機狀態rr.Send()的調用不返回。此外,Timeout參數似乎不起作用(根據文檔,這應該是以毫秒爲單位的超時)。

此行爲對客戶端應用程序的可用性有負面影響。

通過閱讀文檔,我期望調用在配置的超時後返回並且resp.Success字段爲false。

我假定在離線時不應該調用WorklightResourceRequest.Send(),並且這是MobileFirst Platform庫中的一個錯誤。

有沒有這方面的解決方法還是我錯誤地使用庫?

+0

通常Windows UWP應用程序的默認超時時間爲90秒。您的應用在90秒內沒有顯示任何回覆? –

+0

不,應用程序只是永遠掛起(我有幾個小時的等待)。即使網絡返回,通話也不會繼續。 –

+0

我們可以重新創建這個問題,這個問題將在我們的下一個版本中修復。謝謝.. –

回答

0

問題已修復,修復將在下一個IFix中發佈。

相關問題