2010-05-22 23 views
5

我正在通過本書學習WCF和第一個教程實驗室HelloIndigo我收到以下錯誤。EndpointNotFoundException當通過學習WCF教程時工作

無法連接到http://localhost:8000/HelloIndigo/HelloIndigoService。 TCP錯誤代碼10061:由於目標機器主動拒絕它127.0.0.1:8000,因此無法建立連接。

它出現在客戶端項目的行字符串s = proxy.HelloIndigo();

EndpointAddress ep = new EndpointAddress("http://localhost:8000/HelloIndigo/HelloIndigoService"); 

IHelloIndigoService proxy = ChannelFactory<IHelloIndigoService>. 
      CreateChannel(new BasicHttpBinding(), ep); 
string s = proxy.HelloIndigo(); 
Console.WriteLine(s); 
Console.WriteLine("Press <ENTER> to terminate Client"); 
Console.ReadLine(); 

我一直在密切關注這一點,但我並不聰明。

任何人都可以解釋這個問題和如何補救?

回答

3

這可能是幾件事情,要檢查的第一件事:

  • 是在服務上運行?
  • 是否有端點配置了該地址?
  • 有沒有阻止請求的防火牆?

嘗試將終端地址放在瀏覽器中,看看是否可以瀏覽到它。

+0

@ Shiraz如果我把端點地址放在瀏覽器中,我會收到一個空白頁面 - 如果我將url減少到http:// localhost:8000/HelloIndigo,我會收到:這是一個Windows©Communication Foundation服務Metadata publishing for此服務目前已停用。 etc ... – 2010-05-22 13:42:44

+0

@Shiraz - 如果我嘗試添加作爲服務引用到另一個項目 - 我收到...下載'http:// localhost:8000/HelloIndigo/HelloIndigoService'時出現錯誤。 請求失敗,HTTP狀態400:錯誤請求。 元數據包含無法解析的引用:'http:// localhost:8000/HelloIndigo/HelloIndigoService'。 內容類型application/soap + xml;服務http:// localhost:8000/HelloIndigo/HelloIndigoService不支持charset = utf-8。客戶端和服務綁定可能不匹配。 etc – 2010-05-22 13:47:43

+0

爲了添加服務引用,你必須啓用元數據交換,這是在mex標籤 – 2010-05-22 13:58:54

2

在解決方案資源管理器中,右鍵單擊該解決方案並選擇「屬性」。在左側的「通用屬性」下,選擇「啓動項目」。在右側,選擇「多個啓動項目」 - 將「主機」移動到頂端並將操作更改爲開始 - 將「客戶端」移動到「主機」下並將操作更改爲開始。當您單擊F5進行調試時,studio將首先在控制檯應用程序中啓動Host項目,然後它將在單獨的控制檯應用程序中啓動Client項目。