Wednesday, August 1, 2007

How do I use a signing certificate in outgoing messages?

You apply a signing certificate to an outgoing message by adding an encoding component (S/MIME) in the send pipeline. After the component has been added, you configure the component to sign all outgoing messages by clicking True for the Add signing certification to message property. The signing certificate that is used to sign the outgoing message is retrieved from the personal certificate store for the host service account where the pipeline is running.

BizTalk Server supports only one personal certificate for each BizTalk group. A BizTalk group can represent an enterprise, a department, a hub, or another business unit. The personal certificate that is used by the BizTalk group is specified by setting the thumbprint of the personal certificate in the BizTalk group properties.

To enter a thumbprint for the personal certificate for the host service account that is running the pipeline

1. Start BizTalk Server Administration.

2. Right-click the BizTalk group that you want, click Properties, and then click Certificates.

3. In the Thumbprint box, type the thumbprint of the private key certificate that is used to digitally sign outgoing messages from this group. The certificate thumbprint has the following format (where H is a hexadecimal digit):

HHHH HHHH HHHH HHHH HHHHH HHHHH HHHHH HHHHH HHHHH HHHHH

4. Click OK.


Source: Microsoft

Why am I receiving parsing and validation errors in my receive pipeline when using my custom disassembler pipeline component?

When writing a custom disassembler pipeline component you should always:

· Read from the incoming data stream until no more bytes are read.

· Reset the data stream pointer to the start of the stream.

Failure to read all of the data in the incoming data stream could cause your component to process the data incorrectly or miss important data. If you fail to reset the data stream pointer, the next component in the pipeline receives what appears to be an empty (or incomplete) stream.

For example, this code illustrates logic to use the Seek method to point to the beginning of the stream before returning the stream:

myDataStream.Seek(0, SeekOrigin.Begin);

return myDataStream;


Source: Microsoft

Why is my custom policy file generating strange errors?

If you are using a custom policy file, you may encounter the following errors when compiling your solution:

· Stage should contain at least components

· Identifier expected

The first problem occurs when the number of components required per stage is less than the number of components in the stage. The second problem occurs when the execution mode value defined for some stage in the policy file is None; only FirstMatch and All are allowed.

To fix these errors, you must edit your custom policy file to include the proper values. For example, in the configuration below the number of components per stage must be adjusted:

<?xml version="1.0" encoding="utf-8"?>

<document xsd="" xsi="" categoryid="" friendlyname="">

<stages>

<stage name="Decode" minoccurs="5" maxoccurs="10" execmethod="All"></stage>

</stages>

</document>

The Stage element attribute minOccurs must be changed to "1" as shown below.

<?xml version="1.0" encoding="utf-8"?>

<document xsd="" xsi="" categoryid="" friendlyname="">

<stages>

<stage name="Decode" minoccurs="1" maxoccurs="10" execmethod="All"></stage>

</stages>

</document>



Source: Microsoft