5

より複雑なシナリオでより簡単に作業できるように、WCF構成ファイルをより適切に取得しようとしています。いつものように、私は基本の理解を再考しています。したがって、これにより、バインディング構成と動作の違いは何ですか?という質問が発生します。バインディングとは何か(つまり、など)については質問していません。netTcpBindingわかりました。

したがって、その単一のバインディングに対して複数の構成を持つ構成ファイルがあるとしましょう。

  <netTcpBinding>
    <binding name="LargeMessages" maxBufferPoolSize="5242880" maxBufferSize="5242880" maxReceivedMessageSize="5242880">
      <readerQuotas maxDepth="256" maxStringContentLength="16384" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="None"></security>
    </binding>
    <binding name="LargeFiles" maxBufferPoolSize="15728640" maxBufferSize="15728640" maxReceivedMessageSize="15728640">
      <!-- 15MB max size -->
      <readerQuotas maxDepth="256" maxStringContentLength="15728640" maxArrayLength="15728640" maxBytesPerRead="204800" maxNameTableCharCount="15728640" />
      <security mode="None"></security>
    </binding>
    <binding name="LargeStrings" maxBufferPoolSize="524288" maxBufferSize="524288" maxReceivedMessageSize="524288">
      <!-- 0.5MB max size -->
      <readerQuotas maxDepth="256" maxStringContentLength="524288" maxArrayLength="524288" maxBytesPerRead="204800" maxNameTableCharCount="524288" />
      <security mode="None"></security>
    </binding>
  </netTcpBinding>

このシナリオでは、、、および「バインディング構成」を呼び出してLargeMessagesLargeFilesますLargeStrings

その構成ができたので、複数のビヘイビアーを設定することもできます。次のようになります。

<behavior name="DefaultServiceBehavior">
  <serviceCredentials>
    <serviceCertificate findValue="1234123412341234123412341234"
                        x509FindType="FindByThumbprint" />
  </serviceCredentials>
  <serviceMetadata/>
  <serviceDebug includeExceptionDetailInFaults="true" />
</behavior>

この場合、DefaultServiceBehaviorは動作です。

したがって、私の質問をする別の方法は、なぜ私のバインディング構成に私の動作が指定するすべての設定を含めることができないのですか?またはその逆?基本レベルと高レベルで、なぜ両方の設定セットがあるのですか?どちらも、トランスポート構成またはメッセージ構成に非常に大きな影響を与える可能性があるようです。設定を分離するためのロジックがわかりません。

4

1 に答える 1

9

技術的には:

  • Bindings : クライアントとサービスが相互に通信するために必要なトランスポート、エンコード、およびプロトコルの詳細を指定するために使用されます。
  • 動作: サービスまたはクライアントの機能を変更または拡張するタイプです。

素人の言葉で:

  • Bindings : サービスが話す言語を指定するために使用されます (例: 英語、ポルトガル語など)。サービスとクライアントは、同じ言語を話すことに同意した場合にのみ、相互に通信できます。
  • Behaviors : サービスがどのように動作するかを定義するために使用されます。たとえば、イギリスの女王の近衛兵は勤務中は完全にじっと立っていることが期待されています。

結論として、サービスは適切な言語 (バインディング) を話し、想定どおりに動作 (動作) する必要があります。

于 2013-02-05T01:01:49.363 に答える