2011-08-03 15 views
0

これはおそらく簡単な解決策です。コンソールアプリケーションによるホストWCFサービス

私はapp.configファイルに設定を供給している。この

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(); 
     } 
    } 

ようなプロジェクトでは、最も単純なWCFのホストを作成しました。

Visual StudioでF5キーを押すと正常に実行されます。テキストはコンソールウィンドウに表示され、 "netstat -a"はポート808がリッスンしていることを示します(nettcpバインディング)

ただし、Visual Studioを終了してbin \ debug ***をクリックしようとしました。 exeファイル、コンソールウィンドウが表示されますが、何も起こりません!また、 "netstat -a"は、ポート808がリッスンしていないことを示しています。

私は見落としていますか?

+0

'Console.ReadLine()'の後に、 'host.Close()'のほうが良いでしょう。 – fozylet

答えて

1

何も起こらない場合は、プログラムがhost.Open()行にある可能性があります。そのインスタンスにビジュアルスタジオをアタッチしてみてください(デバッグ>アタッチして処理する)。

あなたはまたのServiceHostは、おそらくいくつかのリソースをご利用のサービスオブジェクト

をinstansiateしようとしているときに何かが間違っていることをしばらく待ってみて、あなたがそのようなタイムアウトか何かのように例外を取得するかどうかを確認し、その可能することができます初めて(Visual Studioで)実行するとロックされますか?再起動してエクスプローラからexeファイルを実行するとどうなりますか?

+0

実際、私はここで少し速かったです。ビジュアルスタジオのホスティングプロセス(.... vshost.exe)を有効にすると、サービスが雷を素早く起動するように見えます。しかし、これを無効にすると、起動に約2分かかります。奇妙な.. – Martin

+1

hm OK、あなたのサービスクラスのコンストラクタでブレークポイントを設定し、それらに達するのにかかる時間を見てみてください。あなたはbtwを使っていますか? – aL3891

+0

私はnettcpバインディングを使用しています。おい、それは今働く、起動時間は私に関係しない。私はあなたに私の問題を解決しようとする信用を与える。ありがとう – Martin

関連する問題