Node 2.0 Engineering Notes

From Exchange Network Wiki

Jump to: navigation, search

Here is a list of common issues implementing Node v2.0:

1) WSDL SOAP Action Header: The NET 3.0 toolkit expects a SOAP action header to be included in the SOAP message header even if a SOAP action is null. The SOAP action should be included as an empty string. However, many Java SOAP implementations will omit the SOAP action header if it is not specified in the WSDL.

Resolution: The problem can be eliminated using custom binding in the configuration file for the .NET node. Under the Binding section in the web.config file, you can specify a custom bind like the following:

<customBinding>
<binding name="Node2Binding">
<mtomMessageEncoding messageVersion="Soap12" maxBufferSize="1048576000" writeEncoding="utf-8">
<readerQuotas maxDepth="32" maxStringContentLength="1048576000" maxArrayLength="1048576000" maxBytesPerRead="4096" 
maxNameTableCharCount="2048" />
</mtomMessageEncoding>
<httpTransport manualAddressing="false" maxBufferPoolSize="1048576" maxBufferSize="1048576000" 
maxReceivedMessageSize="1048576000" allowCookies="false" authenticationScheme="Anonymous" bypassProxyOnLocal="false" 
hostNameComparisonMode="StrongWildcard" keepAliveEnabled="true" proxyAuthenticationScheme="Anonymous" realm="" 
transferMode="Streamed" unsafeConnectionNtlmAuthentication="false" useDefaultWebProxy="true" />
</binding>
</customBinding>


The custom binding should be reference in the node endpoint such as the following example:

<endpoint address=https://YourEndpointAddress binding="customBinding" bindingConfiguration="Node2Binding" 
 contract="gov.epa.en.node2.WSAccess.Node2Proxy.NetworkNodePortType2" name="NetworkNodePortType2" />


The custom binding will override the default SOAPAction behavior.  On the client side, it should include a SOAPAction headers even it is empty for maximum interoperability.


Personal tools