Last modified on 24 April 2024, at 12:40

Configuration Files/Bindings.config

Revision as of 12:40, 24 April 2024 by NNE (Talk | contribs) (Upload of large files)

Bindings.config

In this file the bindings can be configured to provide different configurations for data services and endpoints - specified by the name, which then is used in the service/client configuration.

Configuration

See Configuring Bindings for Windows Communication Foundation Services for further details and Configuring Timeout Values on a Binding for information about timeout configuration.

Download large data branches

If the service has to support the streaming transfer mode - e.g. used for downloading large data branches in the UBIK client, ensure to provide the binding definition for "BasicHttpBinding_UBIKContent" (see example). The client setting "ContentServiceConfig" should be set accordingly.

Upload of large files

For security reasons, we allow uploading files with a size of 2000000 Bytes (2MB). To increase the size the attributes maxBufferPoolSize, maxReceivedMessageSize, maxBufferSize, maxStringContentLength, maxArrayLength, maxBytesPerRead, maxNameTableCharCount must be adapted in their respective tags webHttpBinding, basicHttpBinding, and wsHttpBinding.

IC Hint square.pngThe relevant settings for uploading large files are handled in Bytes.
IC Attention.pngThe Configuration Files/web.config must also be adapted otherwise, the upload will fail.
IC Attention.pngIf you are using Windows Internet Information Services (IIS), the maximum upload file size must be reconfigured in IIS otherwise the upload will fail. Configure Microsoft IIS for UBIK
Example Upload of files with 200MB Size
<wsHttpBinding>    
 <binding name="WSHttpBinding"
          sendTimeout="00:05:00"
          maxBufferPoolSize="200000000"
          maxReceivedMessageSize="200000000"
          receiveTimeout="01:00:00">
      <readerQuotas maxDepth="32"
                    maxStringContentLength="200000000"
                    maxArrayLength="200000000"
                    maxBytesPerRead="200000000"
                    maxNameTableCharCount="200000000" />
      <security mode="Transport">
          <transport clientCredentialType="None" />
      </security>
 </binding>
 <binding name="WSHttpBinding_IUBIKPush">
   <security mode="Transport">
     <transport clientCredentialType="None"/>
   </security>
 </binding>
</wsHttpBinding>

Example 3.5

<system.serviceModel>
  ...
  <bindings>
    <webHttpBinding>
      <binding transferMode="Streamed" name="WebHttpBinding_UBIKContent" sendTimeout="00:05:00" maxBufferPoolSize="67108864" maxReceivedMessageSize="67108864" maxBufferSize="67108864" receiveTimeout="01:00:00">
        <security mode="Transport">
          <transport clientCredentialType="None"/>
        </security>
      </binding>
    </webHttpBinding>
    <basicHttpBinding>
      <binding name="BasicHttpBinding_IUSAM" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
            maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
        <security mode="None">
          <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
          <message clientCredentialType="UserName" algorithmSuite="Default"/>
        </security>
      </binding>
      <!-- USED FOR STREAMING TRANSFER MODE -->
      <binding name="BasicHttpBinding_UBIKContent"
                        transferMode="Streamed"
                        sendTimeout="00:05:00"
           maxBufferPoolSize="67108864"
           maxReceivedMessageSize="67108864"
                        receiveTimeout="01:00:00">
                  <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
    </basicHttpBinding>
    <wsHttpBinding>
      <binding name="WSHttpBinding_IUSAM" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
            maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
        <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
        <security mode="Transport">
          <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
          <message clientCredentialType="Windows" negotiateServiceCredential="true"/>
        </security>
      </binding>
      <binding name="WSHttpBinding_UBIKContent" maxReceivedMessageSize="67108864" receiveTimeout="01:00:00">
        <security mode="Transport">
          <transport clientCredentialType="None"/>
        </security>
      </binding>
      <binding name="WSHttpBinding_IUBIKPush">
        <security mode="Transport">
          <transport clientCredentialType="None" />
        </security>
      </binding>
    </wsHttpBinding>
  </bindings>
   ...
</system.serviceModel>

See also