簡體   English   中英

使用同一客戶端實例對WCF服務進行多方法調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM