DESCRIPTION:
In Dynamics AX 2012 R3 the default behavior for CDXRealTimeService (RTS) calls are through HTTPS. The initialization of the Public or Self-Signed certificate can take >10 seconds and the process can be repeated during operation.
The typical scenario is that the Cashier in the Retail POINT of Sale, that request the RTS function example Returns, Inventory Lookup waits for the initialization. Depending on the customer’s situation, this might not be acceptable.
In the case the customer has a protected network environment, example through VPN, firewall ect, it should be safe to run the POS/RTS operation without the security check.
The performance improvement not doing the security check in RTS functions is up to 20 times.
In the following section, we describe how to disable security for WSHttpBinding.
Adding Binding support for Http
IIS/Sites/CDXRealTimeService/”Bindings”
1. Add http protocol on example port 85
EDIT the table RetailTransactionServiceProfile
In the Dynamics AX Database from SQL Management Studio
1. Change the CentralTableServerPort to 85
2. Change the SECURITYOFF to 1
3. Run the 1070 job to replicate this to the Channel databases
Change the WEB.CONFIG
C:\Program Files (x86)\Microsoft Dynamics AX\60\CDX\Real-time Services\6.3\Web.config
In the Web.config file, it is possible to turn off the security.
Original
<wsHttpBinding>
<binding name="WSHttpBinding"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
maxBufferPoolSize="10485760"
maxReceivedMessageSize="10485760"
textEncoding="utf-16"
messageEncoding="Text">
<readerQuotas maxStringContentLength="10485760"
maxBytesPerRead="10485760" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None"
proxyCredentialType="None" />
<message clientCredentialType="UserName"
algorithmSuite="Default"
negotiateServiceCredential="true" />
</security>
Changed
<wsHttpBinding>
<binding name="WSHttpBinding"
closeTimeout="00:01:00"
openTimeout="00:01:00"
receiveTimeout="00:10:00"
sendTimeout="00:01:00"
maxBufferPoolSize="10485760"
maxReceivedMessageSize="10485760"
textEncoding="utf-16"
messageEncoding="Text">
<readerQuotas maxStringContentLength="10485760"
maxBytesPerRead="10485760" />
<security mode="None">
</security>
Change the POS.EXE.CONFIG
C:\Program Files (x86)\Microsoft Dynamics AX\60\Retail POS\ POS.EXE.CONFIG
In the Pos.Exe.Config file, it is possible to turn off the security.
Original
<wsHttpBinding>
<binding name="WSHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" maxBufferPoolSize="10485760" maxReceivedMessageSize="1048576" textEncoding="utf-16" messageEncoding="Text" useDefaultWebProxy="true">
<readerQuotas maxStringContentLength="1048576" maxBytesPerRead="1048576" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None" proxyCredentialType="None" />
<message clientCredentialType="UserName" algorithmSuite="Default" negotiateServiceCredential="true" />
</security>
Changed
<wsHttpBinding>
<binding name="WSHttpBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" maxBufferPoolSize="10485760" maxReceivedMessageSize="1048576" textEncoding="utf-16" messageEncoding="Text" useDefaultWebProxy="true">
<readerQuotas maxStringContentLength="1048576" maxBytesPerRead="1048576" />
<security mode="None">
</security>
Author: Kim Truelsen
Date: 1/9 2015