2011-01-05 30 views
4

私はWCFの学習を始め、いくつかのテストHTTPサービスを正常に作成しました。今、私はnet.pipeバインディングを使用して、自己ホストWCFサービスを作成しようとしていました。net.pipeサービスへのサービス参照の追加

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<system.serviceModel> 
    <services> 
     <service behaviorConfiguration="MEX" name="InProcService.MyService"> 
      <endpoint address="MyService" 
       binding="netNamedPipeBinding" bindingConfiguration="" contract="InProcService.IMyService" /> 
      <endpoint address="Mex" binding="mexNamedPipeBinding" 
       contract="IMetadataExchange" /> 
      <host> 
       <baseAddresses> 
        <add baseAddress="net.pipe://localhost/InProcService/" /> 
        <add baseAddress="http://localhost:8001/InProcService/" /> 
       </baseAddresses> 
      </host> 
     </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
     <behavior name="MEX" > 
     <serviceMetadata httpGetEnabled="true"/> 
     </behavior> 
    </serviceBehaviors> 
    </behaviors> 
</system.serviceModel> 
</configuration> 

が今私のホストアプリケーションでは、私が使用してサービスを開始しています: - - :このコードが実行されるとき

 ServiceHost host = new ServiceHost(typeof(MyService)); 
     host.Open(); 
     Console.WriteLine("Service started"); 

     host.Close(); 

サービスが正常に起動し、以下のサービスのための設定ファイルです。

クライアントアプリケーションでこの実行中のサービスにサービス参照を追加しようとすると、そのサービスを見つけることができません。私がやっていないことや間違っていることがありますか?

私はこれに得ることができる任意のヘルプをありがとうと思います。

乾杯、 アビ。

+0

「サービス参照の追加」にどのURLを渡していますか?正確に何のエラーがありますか?また、コマンドラインのsvcutil.exeプログラムを使用してみてください。エラーが表示されるはずです。 –

+0

サービス参照を追加する際に、あなたのサービスをどのように指していますか?エンドポイントのアドレスは次のようになります:net.pipe:// localhost/InProcService/MyService – volpav

+0

エラーメッセージには次のようなメッセージが表示されます: - "メタデータに解決できない参照が含まれています: 'net.pipe:// localhost/InProcService/MyService' メッセージを受け入れることができるnet.pipe:// localhost/InProcService/MyServiceでリッスンしているエンドポイントがありませんでした。これは多くの場合、アドレスまたはSOAPのアクションが間違っているために発生します。 サービスが現在のソリューションで定義されている場合は、ソリューションを構築し、サービス参照をもう一度追加してみてください。 "何か案は? –

答えて

2

その後、サービスが開かれ、閉じられます。クライアントを起動するまでに、サーバーはすでに閉じられています。したがって、Console.ReadKey()は閉じる前に要求されます。