Issue with WCF.Action or other WCF properties at Run-Time
I am postign this article for a very specific purpose. After I posted the topic on dynamically setting the WCF Action for the Custom WCF Adapter based Send Port , some folks running BizTalk 2009 or older reported that they faced the following issue:
1. Even though the WCF.Action property is promoted, at run time the Adapter fails to read the promoted property from the message context. They get an error message stating the Action is not in the specified Action. Look at the screen shot below.
Error when WCF.Action is not passed or read by the WCF Adapter |
Error Description from event Log:
The adapter failed to transmit message going to send port "Send_to_SAP_Generic_ODX" with URL "sap://CLIENT=100;LANG=EN;@a/SERVERNAME/99?&RfcSdkTrace=False&AbapDebug=False". It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.UnsupportedOperationException: Incorrect Action <BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="SendToSAP" Action="" />
</BtsActionMapping>. Correct the specified Action, or refer to the documentation on the allowed formats for the Actions. Note that Actions are case-sensitive.
Before I dive into the possible solutions, let me share what I learnt while troubleshooting this issue. First I was able to reproduce it by starting with a vanilla (run-time) only BizTalk 2009 Environment with NO Visual Studio (actually Visual Studio presence is really irrelevant), but nevertheless.
Ø Solution(s):
o Download and install the Cumulative Update 5 or 6 for BizTalk Server 2009, 2006 R2 (remember WCF adapter stuff does not apply to BizTalk versions prior to R2 release)
Cumulative Update 5
Cumulative Update 6
- Recommended Fix for Production or QA environment:
Although the best practice states that install the latest updates instead of the following short-cut. However read on…
- Now the cumulative update installation might warrant an outage. So, if a temporary fix is required for critical run-time environments, it will probably make sense to fix the problem at hand only. This also applies to situations where there are complex integration services hosted on BizTalk and a planned outage is required and waiting for a longer time to get the Cumulative Updates is inevitable.
- In that case, the culprit dll is Microsoft.BizTalk.Adapter.Wcf.Runtime.dll
- Get the newer Microsoft.BizTalk.Adapter.Wcf.Runtime.dll from the dev environment where Cumulative Patch is applied and install to GAC on the target computer
Gacutil –if “{path\ Microsoft.BizTalk.Adapter.Wcf.Runtime.dll} à New dll
- No need to restart host instances
- Also, you can resume the suspended instances they should read the property and move on!
contact: technoamit@gmail.com
web-site: http://quicksolutionsinc.us/
No comments:
Post a Comment