Hi All,
There is a dynamics AX service (custom) based on HTTP adapter. While accessing this svc from SOAP UI, I get appropriate response. However, while accessing the same from BizTalk 2010, I get this error (soap exception) "No matching MessageFilter was found for the given Message.". I looked to the messaging filter defined in the application web.config, and found it correct.
<client>
<endpoint name="VendorProductSvc" address="net.tcp://DEVCLIENT-09A:8201/DynamicsAx/Services/ZonVendorProductDetail" binding="netTcpBinding" bindingConfiguration="DefaultServiceGroupBinding" contract="*" behaviorConfiguration="clientEndpointBehavior">
<identity><servicePrincipalName /></identity>
</endpoint>
</client>
<routing>
<!--
Define the filters that we want the router to use. In this example we define a MatchAll message filter, which will match all messages it sees.
-->
<filters>
<filter name="MatchVendorProductSvc" filterType="Custom" customType="Microsoft.Dynamics.Ax.Services.Host.MatchAxServiceFilter, Microsoft.Dynamics.IntegrationFramework.WebService.Process" filterData="http://tempuri.org/VendorProductSvc" />
</filters>
<!-- Define the routing table that contains the matchAll filter defined in the filters section. -->
<filterTables>
<filterTable name="AosRoutingTable">
<!-- Map the filter to a client endpoint that was previously defined. Messages that match this filter will be sent to this destination. -->
<add filterName="MatchVendorProductSvc" endpointName="VendorProductSvc" />
</filterTable>
</filterTables>
</routing>
However, if I try to modify and add additional filter to matchALL request, Service WSDL fails to load. This is not my current problem though.
My input request message goes as:
<ns0:VendorProductSvcGetVendorProductDetailsRequest xmlns:ns0="http://tempuri.org">
<ns0:ItemId>000029372</ns0:ItemId>
</ns0:VendorProductSvcGetVendorProductDetailsRequest>
And then before calling AX WCF service, I construct and add the header information to the input request.
Message_1 = MessageAifRequest;
Message_1(WCF.OutboundCustomHeaders)=System.String.Format(@"<headers><CallContext xmlns=""http://schemas.microsoft.com/dynamics/2010/01/datacontracts""><Company>{0}</Company></CallContext></headers>", "USA");
I do handle AifFault and SoapException in the Scope element. While running, BizTalk orchestration throws SoapException with the error details I mentioned.
Any help is much appreciated.