Skip to main content
Mitratech Success Center

Client Support Center

Need help? Click a product group below to select your application and get access to knowledge articles, webinars, training content, and release notes or to contact our support team.

Authorized users - log in to create a ticket, view tickets status and check your success plan details.

 

Transfer of Documents using the Document Handling service sometimes fails

Description

Between DataStoreDSX version 4.0 and 4.3, there is an issue with the DocumentHandlingService API where an error is produced when a call is made to store a document.  The error reported in the Event Log (Application) is 

 

==================================================================================

** External API Web Service ***

The requested upgrade is not supported by 'net.tcp://<ServerName>:8001/WindowsTransferService/'. This could be due to mismatched bindings (for example security enabled on the client and not on the server).

Type :    HitecLabs.TransferManager.Exceptions.UploadFailedException
Message :    The file upload with Id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx failed.

==================================================================================

As the error suggests there is a mismatch in the bindings between the DocumentHandlingService API website and the DataStoreDSX service.  This should have been corrected in DataStoreDSX version 4.3 (Patch 6). but there the patch is incomplete.

 

Identifying the omission in the web.config file.

To correct the issue, the web.config for the DocumentHandling website needs to be open in text editor and a search carried out for the phrase 'TransferServiceWindowsTcpBinding'.  If there are no results or only one result then the file is incorrectly configured.  There should be two references to 'TransferServiceWindowsTcpBinding' in the file.

 

Correcting the file.

At most, two configuration changes are needed.  The first is to the Windows Transfer endpoint.  The endpoint should look like this

<endpoint address="net.tcp://localhost:8888/WindowsTransferService/" behaviorConfiguration="DataStoreClientWindowsEndpointBehaviour" binding="netTcpBinding" bindingConfiguration="TransferServiceWindowsTcpBinding" contract="HitecLabs.TransferManager.Common.ITransferService" name="TransferServiceTcpWindows">
    <identity>
        <servicePrincipalName value="" />
    </identity>
</endpoint>

The bindingConfiguration should be TransferServiceWindowsTcpBinding.  This was corrected in DataStoreDSX 4.3 patch 6, but the next part is missing.

The second change is to add the TransferServiceWindowsTcpBinding binding to <netTcpBinding> section of the file.  The easiest way of doing this is to find the DataStoreWindowsTcpBinding binding and insert the new TransferServiceWindowsTcpBinding below it.  Caution must be exercised here to paste the new binding in the correct place.  A binding always ends with </binding>.

The binding to insert looks like this

<binding name="DataStoreWindowsTcpBinding" openTimeout="00:01:00" sendTimeout="00:10:00" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="256" maxStringContentLength="104857600" maxArrayLength="536870912" />
    <security mode="Transport">
        <transport clientCredentialType="Windows" />
    </security>
</binding>

This must be inserted between a line that the lines <\binding> and the start of another binding that always started with <binding name=".....

What's Next

When complete, save the file try the testbed or application again.  It is not always necessary to restart the site or the application pool controlling the site.

  • Was this article helpful?