我有以下代碼:System.ServiceModel.ClientBase連接到服務
public partial class MyServiceClient : System.ServiceModel.ClientBase<...
if (m_MyClient == null)
m_MyClient = new MyServiceClient
("BasicHttpBinding_IMyService", remoteAddress);
WriteOutput("Successfully connected to service");
我的問題是我怎麼知道我的客戶實際上是在這一點上連接到服務?我想顯示失敗或成功的消息。
礦井下面的代碼: m_MyClient = new MyServiceClient(「BasicHttpBinding_IMyService」,remoteAddress); 絕不會引發異常。只有當我嘗試與服務進行通信時,我是否會遇到異常。 如果我的客戶端實際連接,我想在那個代碼之後找出正確的代碼? – Tamer 2010-06-28 06:09:59
@Tamer:**你有什麼**異常?在WCF中,你本身並不真正「連接」 - 你有一個可用於發送消息的通道 - 但是沒有像ADO.NET或類似的東西的真正連接... – 2010-06-28 06:17:02
更新: 以下代碼: ( m_MyClient作爲IClientChannel).State == CommunicationState.Opened 崩潰。 正確的是: m_MyClient.State == CommunicationState.Opened 現在有趣的是CommunicationState總是被創建。它從來沒有真正打開,它始終保持創建。它只有在通信實際發生後纔會打開。就像我打電話給: m_MyClient.GetComments(); 然後我檢查狀態,纔打開它。 – Tamer 2010-06-28 06:33:12