2011-08-03 165 views
0

這可能是一個簡單的解決方案。主機WCF服務通過控制檯應用程序

我創建了簡單的WCF主機在一個項目像這樣

static void Main(string[] args) 
    { 
     using (ServiceHost host = new ServiceHost(
      typeof(AmphoraService.ConsignmentService.Consignment))) 
     { 
      host.Open(); 
      Console.WriteLine("Consignment Service Activated! Press <Enter> to terminate " + 
       "the Host application."); 
      Console.WriteLine(); 
      Console.ReadLine(); 
     } 
    } 

我提供了在app.config文件中的配置。

當按下在Visual Studio F5運行成功。文本顯示在控制檯窗口中,「netstat -a」顯示端口808正在監聽(其nettcp綁定)

但是,當我退出Visual Studio並嘗試單擊bin \ debug ***時。 exe文件,出現一個控制檯窗口,但沒有任何反應!而「netstat -a」顯示端口808不在監聽。

我俯瞰什麼?

+0

後'到Console.ReadLine()',這是更好地'host.Close()' – fozylet

回答

1

如果沒有反應,它可能是程序坐在host.Open()線。嘗試將Visual Studio註冊到該實例(使用Debug> attatch進行處理)。

您也可以嘗試等待一小會兒,看看你得到一個異常,如超時什麼的,它可能是事情錯了,當ServiceHost的試圖instansiate你的服務對象

也許有些資源第一次運行它(在Visual Studio中)時被鎖定?如果你重新啓動並首先從資源管理器運行exe文件,該怎麼辦

+0

嗯..其實我是有點太快了這裏。看起來,當啓用視覺工作室託管過程(.... vshost.exe)服務啓動閃電快。但是,禁用此功能時,啓動大約需要2分鐘。奇怪.. – Martin

+1

HM OK,嘗試在構造函數中爲您服務類中設置斷點,看看需要多長時間達到這些目標。你用什麼交通工具? – aL3891

+0

我正在使用nettcp綁定。夥計,它現在起作用,啓動時間不關心我。我試圖解決我的問題給你的信譽。謝謝 – Martin

相關問題