2011-08-12 6 views
5

私はWCFサービスのエンドポイントを設定する作業をしています。私は全体としてサービスに関する経験はほとんどありませんが、それらを使用するプロジェクトの途中で遂行されています。エンドポイント内の各属性が何をしているのかを大まかに理解しています。 "bindingConfiguration"。BasicHttpBindingエンドポイントの設定で使用するbindingConfiguration属性は何ですか?

はここに私のコードの不明瞭なバージョンです(実際の情報は、独自のものです):

 <endpoint address="http://localhost/SomeService.svc" 
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISomeService" 
      contract="SomeService.ICoreService" name="BasicHttpBinding_ISomeService" /> 

は、ここでのMSDNのテイクだ(彼らはそれを特異的に対処しないように)。当然のStackOverflowの

Microsoft's incomplete MSDN Entry

「bindingConfiguration」の文字列の一致を含むいくつかの質問を持っているが、どれもexplicetely私の質問に対処しない:

Most relative (I think) Stackoverflow question

これがために使用されているものを上の任意のアイデアを?

学習のために、私は刺すとここで間違って喜んでいます。私はそれが認証またはセキュリティと何かを持っていると思う。インターフェイスの点検で私はこれに関係することに気付かない。

助けがあれば助かります。あなたのバインディングのセクションで

乾杯

マット

答えて

14

、あなたは(あなたのケースでは、basicHttpBinding)同じ結合タイプに対して複数の「構成」を持つことができます。バインド設定では、どちらを使用するかを選択します。

MSDNでは、bindingConfigurationは属性であるため、<endpoint>の参照を見つけようとする必要があります。bindingConfigurationはその属性の定義が定義されています。

以下の例では、サービスでは2つのエンドポイントが定義されており、両方ともbasicHttpBindingを使用しています。そのうちの1つは「通常の」HTTPに公開され、もう1つはHTTPSで公開されます。 bindingconfiguration属性は、WCFにどの設定を使用するかを伝える属性です。

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="SimpleBasic"> 
       <security mode="None"/> 
      </binding> 
      <binding name="BasicOverHttps"> 
       <security mode="Transport"/> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <services> 
     <service name="MyNamespace.MyService"> 
      <endpoint address="ep" 
         binding="basicHttpBinding" 
         bindingConfiguration="SimpleBasic" 
         contract="MyNamespace.IService" /> 
      <endpoint address="secure" 
         binding="basicHttpBinding" 
         bindingConfiguration="BasicOverHttps" 
         contract="MyNamespace.IService" /> 
     </service> 
    </services> 
</system.serviceModel> 
+0

あなたの例は理にかなっています。早々に返事をくれてありがとう。したがって、基本的には、指定したバインディングを追加のxmlで構成します。デフォルトのbasicHttpBindingには、必要とされていたものを正確には意味しませんでした。いくつかのファイルをソリューション内に置くことができましたが、その特定のサービスプロジェクトでは見つかりませんでした。私が今興味を持っているのは、これらのバインディングの設定をseprate設定ファイルに置くことができますか?私は、ファイル内のmy bindingConfigurationの名前と正確に一致する定義を見つけることができませんでした。残念なコードですか? –

+1

おそらく。私はあなたが(IISで)ディレクトリにweb.configを持っていれば、サブディレクトリのweb.configは親の設定を継承する(私はそれを試していない)ので、もしそうなら、欠落している可能性がある構成は親構成の1つからのものでした。しかし、それはちょうどいくつかの悪い設定です。 – carlosfigueira

関連する問題