WCF - мне нужно настроить привязку как на клиенте, так и на сервере (возможно, основы), но я запутался. Не могли бы вы уточнить)? - PullRequest
4 голосов
/ 23 октября 2011

Я использую NetNamedPipeBding для связи со службой на локальной машине. Я понимаю, что мне нужно определить параметры конфигурации для клиента, такие как maxstringcontentlength, sendtimeout, maxbyteperread и т. Д. Нужно ли определять то же самое на стороне сервера? Какая связь между этими двумя? Если у клиента нет настроек конфигурации при подключении к нему, будут ли он использовать настройки привязки по умолчанию? Они полностью независимы?

Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы, если мой вопрос сбивает с толку.

-------------------------------------------------

For ex: I defined the below settings for client

    <netNamedPipeBinding>
            <binding name="NetNamedPipeBinding_IService" closeTimeout="00:01:00"
               openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
               transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
               hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647"
               maxBufferSize="2147483647" maxConnections="10" maxReceivedMessageSize="2147483647">
              <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
                  maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
              <security mode="None">
                <!--<transport protectionLevel="EncryptAndSign" />-->
              </security>
            </binding>
          </netNamedPipeBinding>


And I also defined at server side similar settings:


  <services>
      <service behaviorConfiguration="ServiceBehavior" name="Namespace.Service" />
    </services>

    <bindings>
      <netNamedPipeBinding>
        <binding name="NetNamedPipeBinding_Service" closeTimeout="00:01:00"
           openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
           transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
           hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647"
           maxBufferSize="2147483647" maxConnections="10" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
              maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
          <security mode="None">
            <!--<transport protectionLevel="EncryptAndSign" />-->
          </security>
        </binding>
      </netNamedPipeBinding>                 
    </bindings>

1 Ответ

1 голос
/ 23 октября 2011

Некоторые настройки имеют отношение к обоим сторонам, а некоторые относятся только к серверу, а некоторые к клиенту.Как правило, большинство параметров должны иметь одинаковое значение, и да, вам необходимо настроить привязку на обоих концах.Один не будет использовать настройки другого после установления соединения.

...