2010-12-19 9 views
1

私は、現時点では、basicHttpBindingを使用して契約数を露出させ、WCFサービスを作成しています。しかし、私は今、同じマシン上でローカルにサービスを使いたいと思っています.netNamedPipeBindingはパフォーマンスの点でより適切です。そのため、名前付きパイプとHTTPを使用してサービスを公開したいと考えています。WCF HTTPおよび名前付きパイプのサービス

私は次のような構成でこれをやっている瞬間:

<service name="WCFService.MyService" behaviorConfiguration="serviceBehaviour"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8080/MyService" /> 
     <add baseAddress="net.pipe://localhost/MyService" /> 
     </baseAddresses> 
    </host> 

    <endpoint address="calculator" binding="basicHttpBinding" contract="WCFService.ICalculatorService" /> 
    <endpoint address="database" binding="basicHttpBinding" contract="WCFService.IDatabaseService" /> 
</service> 

これは正常に動作するようだが、精密検査にエンドポイントがまだbasicHttpBindingを使用しています。これは機能しますが、私はそれが不必要なオーバーヘッドを作り出しているという印象を受けます。

は完全に間違って、私は各契約のエンドポイント、および各結合タイプ(すなわちbasicHttpBindingとnetNamedPipeBinding)を作成する必要があるか、私はこれについてつもりですか?

(それは明らかではない場合、私はWCFにかなり新しいよ!)

+0

をWCFがこれを処理できるようにすることができます:あなたは2つのベースアドレスを定義することができ、WCFはバインディングごとに1つのエンドポイントを作成します。合計4つのエンドポイント –

答えて

1

はい、あなたは複数のエンドポイント(結合につき1つのエンドポイント)を指定する必要があります、.NET 4であなたを

<endpoint address="calculator" binding="basicHttpBinding" contract="WCFService.ICalculatorService" /> 
<endpoint address="database" binding="basicHttpBinding" contract="WCFService.IDatabaseService" /> 

<endpoint address="calculator" binding="netNamedPipeBinding" contract="WCFService.ICalculatorService" /> 
<endpoint address="database" binding="netNamedPipeBinding" contract="WCFService.IDatabaseService" /> 
+0

ありがとう、それは多くの助けになります。 – Barg

関連する問題