2009-05-20 52 views
7

在控制檯應用中創建簡單的Web服務。 (PersonService) 這是我的Program.cs如下向控制檯應用添加Web服務引用

即時通訊嘗試添加服務引用到不同的控制檯應用程序(PersonClient) 我該怎麼做? 我試圖通過右鍵單擊添加它,添加服務引用,指向參考等... 但它不會工作。

 [DataContract] 
     public class Person 
     { 
      [DataMember] 
      public string FirstName { get; set; } 

      [DataMember] 
      public string LastName { get; set; } 

     } 

     [ServiceContract] 
     public interface IPersonLookup 
     { 
      [OperationContract] 
      Person GetPerson(int identifier); 
     } 

     public class PersonService : IPersonLookup 
     { 
      public PersonService() 
      { 
      } 
      public Person GetPerson(int identifier) 
      { 
       Person p = new Person(); 
       p.FirstName="Jane"; 
       p.LastName="Doe"; 
       return p; 
      } 



     } 


     class Program 
     { 
      static void Main(string[] args) 
      { 
       using (ServiceHost host = new ServiceHost(typeof(PersonService))) 
       { 
        WSHttpBinding binding = new WSHttpBinding(); 
        host.AddServiceEndpoint(typeof(IPersonLookup), binding, "http://localhost:9090/PersonService"); 
        host.Open(); 
        Console.WriteLine("Listening...."); 
        Console.ReadLine(); 
       } 


      } 
     } 

回答

0

你有兩個控制檯exes,其中一個運行ServiceHost - 是否正確?無需調試運行服務器控制檯;然後在IDE中將WCF引用添加到url。它應該可以工作,但是當你查詢mex時,它需要服務器(你的第二個控制檯EXE)運行。

0

當您添加webservice引用時,您爲該服務定義了名稱空間和「類名」。您必須添加名稱空間引用(「using FooNameSpace;」)或使用服務的完全限定類名(「FooNameSpace.BarClass ws = new FooNameSapce.BarClass()」);

11

解決方案:

  1. 使用Visual Studio創建一個控制檯應用程序。
  2. 右鍵單擊該項目,然後單擊「添加服務引用...」。
  3. 在窗口中,您會在底部找到「高級」按鈕。
  4. 點擊按鈕,它將打開服務參考設置窗口。它在底部有一個名爲「添加Web引用」的按鈕。
相關問題