2011-08-10 110 views
0

我構建了含4個項目一點點的解決方案:調試WCF項目

  • 合同:包括我(T4生成)實體和接口,我的服務

  • 服務:包含(產生T4)我上下文和執行我的服務

  • 主持人:包含了最低限度託管服務

ServiceHost host = new ServiceHost(typeof(InleerAppService));

try 
{ 
    host.Open(); 

    Console.WriteLine("The service is ready!"); 
    Console.ReadKey(); 

    host.Close(); 
} 
catch (CommunicationException cex) 
{ 
    Console.WriteLine(cex.Message); 
} 
  • 客戶:

變種工廠=新的ChannelFactory( 「InleerAppService」);

IInleerAppService service = factory.CreateChannel(); 
var result = service.ReturnInput("test string"); // just returns the input string, this works! 

Console.WriteLine(result); 

var result2 = service.GetAllCompanies(); // this doesn't and crashes the client 

foreach (Company c in result2) 
{ 
    Console.WriteLine(c.Name); 
} 

Console.ReadKey(); 

你明白我想知道是怎麼回事。但我真的不明白我該如何調試。首先我用ctrl + F5啓動主機,然後是客戶端。但是這不允許我調試。我該怎麼去,使用這個設置?我知道有更多的方法來處理服務,但是對於這部分我只想關注這個設置。

回答

1

您可以設置解決方案來啓動多個項目,然後點擊F5。要進行設置,請右鍵單擊解決方案並轉到屬性。選擇公共屬性下的啓動項目。並選擇您的服務和客戶端項目啓動。

調試的另一種方法是選擇服務項目,右鍵單擊並轉到調試 - >啓動新實例。接下來,爲客戶項目做同樣的事情。現在,您應該同時在調試模式下運行服務和客戶端項目。