Monday, October 27, 2008

Convert BAM definition xml from 2004 to 2006

I needed to use a BAM definition xml from 2004 in a 2006 environment.

I did not find any conversion tool so I compared it to a definition from 2006.

The 2 diffenrences I found was namespace and DisplayName.
  1. Change namespace to: http://schemas.microsoft.com/BizTalkServer/2004/10/BAM
  2. Remove prefix on that namespace
  3. Remove xml instance namespace (xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance")
  4. Remove all attributes named "DisplayName"

Done!

Friday, October 03, 2008

"Internal SOAP Processing failure"

Do not run "Web publish wizard" before deploying the BizTalk-assembly it depends on.

Why? Because your assembly have not got a PublicToken yet and the wizard will create a web service wich invoke BizTalk with incorrect parameter.

This:
string bodyTypeAssemblyQualifiedName = "x.y.z, x.y, Version=1.0.0.0, Cult" +
"ure=neutral, PublicKeyToken=null";

Instead of:
string bodyTypeAssemblyQualifiedName = "x.y.z, x.y, Version=1.0.0.0, Cult" +"ure=neutral, PublicKeyToken=bc6f029b1f97f4c8";

There can be a lot of reasons you get the error, "Internal SOAP Processing failure", but in my case it was the reason above.

Since the defult receive pipeline is PassThrough you might miss import error descriptions. In my case switching to XmlReceive made me discover that the pipeline could not find the schema assembly. Then I realized the PublicToken was "null".