[英]Multiple method call using same client instance to WCF service
我的WPF應用程序正在使用單個客戶端對象調用WCF服務。 發送請求並且在下一個請求之前立即有響應時,此方法工作正常。
當我發送第一個請求時,需要3分鍾才能完成計算任務並返回結果。 同時,我的WPF應用程序發送了第二個請求(ping請求每3秒發送一次)。 這時,出現以下錯誤,WPF應用程序斷開連接:
服務器未提供有意義的答復:這可能是由於合同不匹配,會話提前關閉或服務器內部錯誤引起的
通信對象System.ServiceModel.Channels.ServiceChannel由於處於故障狀態,因此無法用於通信。
我的服務行為如下所示:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, IncludeExceptionDetailInFaults=true)]
我嘗試了不同的組合,但無法正常工作。
如果您從singel客戶端進行多個並發調用,則除了InstanceContextMode之外,還應將ConcurrencyMode設置為Multiple。請注意,如果將InstanceContextMode設置為Single,則您的服務將作為Singleton,那么您應該注意操縱變量,因為它對其他變量有反射打電話..
您的Ping請求不應使用同一頻道。 它應該打開自己的頻道。 理想情況下,每個獨立的請求都應打開其自己的通道(或者,您可以構建一個排隊系統)。 但是從兩個不同的線程訪問相同的通道將無法正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.