Here are a couple of tips if you plan on running the BizTalk Framework (BTF) Assembler Component as part of a send pipeline using my BizTalk PipelineTesting Library:

Tip 1: Ensure all necessary schemas are available

The BTF Assembler will require access to all its own set of envelope and header schemas from the pipeline context, so be sure they are available. All the schemas are in the Microsoft.BizTalk.GlobalPropertySchemas.dll assembly, so you can easily add them to the pipeline like this:

pipeline.AddDocSpec(typeof(BTF2Schemas.btf2_endpoints_header));
pipeline.AddDocSpec(typeof(BTF2Schemas.btf2_envelope));
pipeline.AddDocSpec(typeof(BTF2Schemas.btf2_manifest_header));
pipeline.AddDocSpec(typeof(BTF2Schemas.btf2_process_header));
pipeline.AddDocSpec(typeof(BTF2Schemas.btf2_receipt_header));
pipeline.AddDocSpec(typeof(BTF2Schemas.btf2_services_header));

Tip 2: How to set the content encoding

If you're also using the MIME/SMIME encoder component on your pipeline, keep this in mind: For some reason, while playing with this yesterday, I could not get the value of the ContentTransferEncoding property of the MIME encoder to be used when running my pipeline (an empty pipeline where I added the component manually). However, I found that I could work around this by directly setting the value on a property in the body part of the input message to the pipeline, like this:

inputMsg.BodyPart.PartProperties.Write("ContentTransferEncoding", "http://schemas.microsoft.com/BizTalk/2003/mime-properties", "7bit");

Hope this helps!


Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.