BizTalk Server 2010 AppFabric Connect for Services

December 10, 2010

Using the recently released BizTalk Server 2010 AppFabric Connect for Services you can extend BizTalk Orchestrations and LOB applications into the cloud.

This post from the BizTalk Server team offers some situations where this feature may be useful.

This new feature pack can be downloaded here:


BizTalk HTTP receive IIS Internal Server 500 Error

October 12, 2010

When configuring your BizTalk HTTP receive IIS7 application pool on a 64 bit OS. Make sure to configure the following IIS setting:

Enable 32-bit Applications = True

More details can be found here.

Thanks John!

Configuring BTSHTTPReceive.dll to work on IIS 7

October 12, 2010

Receiving errors when trying to use the BTSHTTPReceive.dll?

BizTalk Bill will save you some time with this handy post.

More details on whole BTSHTTPReceive.dll setup and configuration can be found here:

Powershell: A one line script to terminate all BizTalk suspended messages

October 7, 2010

Here is a quick powershell script which terminates all suspended messages on a local BizTalk Server host.

This script includes all service instances, you can however very easily modify the script for finer control to use any other different set of properties for each instance. For example if you included the condition ‘ServiceClass = 4’ as well you would be only terminating “messaging” service instances.

Here is the script.

Get-WmiObject MSBTS_ServiceInstance  -namespace 'root\MicrosoftBizTalkServer' -filter 'ServiceStatus = 4'  |`
%{Get-WmiObject MSBTS_ServiceInstance -namespace 'root\MicrosoftBizTalkServer' -filter "InstanceID = '$($_.InstanceID)'"} |`
%{ $_.Terminate()} |`
%{ Out-Null }


BizTalk deployment using Windows PowerShell Part 1: Applications and Host Instances

September 24, 2010

Windows Powershell is the (not so) new command and scripting language from Microsoft. One of Powershell’s biggest features is the ability to leverage the power of the .NET framework directly from the command line. I am finding myself drawn to using Powershell more and more in many different scenarios, especially when I comes to automating deployment tasks.

BizTalk deployments are commonly made up of many different tasks spanning beyond just building, importing and installing a BizTalk solution. Often there are many pre and post build tasks which are required to complete the job. I have on occasion been involved in deployments which would have been simplified through automation with Powershell scripts.

In this series of posts I plan to post some of the scripts which I have written which can be reused or used as a guide to simplify common deployment tasks.

  1. Script 1 stops all running BizTalk applications (fully) and stops all host instances: BTSStopAllAppsAndHostInstance.ps1
  2. Script 2 starts all running BizTalk applications (fully) and starts all host instances:BTSStartAllAppsAndHostInstance.ps1

So what are contained within these scripts?

These scripts have been written for use against BizTalk Server 2009, and as such retrieve the BizTalk Server 2009 installation path from the windows registry. For control of the BizTalk Server applications, the Microsoft.BizTalk.Explorer.OM assemblies are used, while for the BizTalk host instances the Get-Service Powershell commandlet is used.

For more information I suggest reading up more about what I have done here using the following links:

KB 899599: A BizTalk Server Host instance fails, and a “General Network” error is written to the Application log when the BizTalk Server-based server processes a high volume of documents

June 28, 2010

I thought I might post an entry aimed at anyone else who may be experiencing the following issue.

I experienced a performance related issue recently where errors were being posted to the Windows application event log when BizTalk server was processing a high volume of documents.

In this particular environment the BizTalkMgmtDB was hosted on a server different to that of the BizTalk server instance.

To resolve this issue, turn off this new functionality by adding the SynAttackProtect entry to the following registry key on the computer that is running Microsoft SQL Server that houses your BizTalk Server databases.
Set the SynAttackProtect entry to a DWORD value of 00000000. To do this, follow these steps:

1. Click Start, click Run, type regedit, and then click OK.
2. Locate and then click the following registry key:
3. On the Edit menu, point to New, and then click DWORD Value.
4. Type SynAttackProtect, and then press ENTER.
5. On the Edit menu, click Modify.
6. In the Value data box, type 00000000. Click OK.
7. Quit Registry Editor.

Note: To complete this registry change, you must restart the computer that is running SQL Server.

More detailed information can be found by following the link:

Creating an XSLT data envelope using XML CDATA sections

February 10, 2010

Just noting this technique down for future reference.

Creating an envelope document using an XML CDATA section:

<xsl:stylesheet xmlns:xsl="" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="" exclude-result-prefixes="msxsl var userCSharp" version="1.0"  xmlns:ns0=""  xmlns:userCSharp="">
  <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
  <xsl:template match="/">
      <xsl:attribute name="DocType">
<xsl:element name="ns0:Payload">
		<xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text> 
			 <xsl:copy-of select="./@* | ./*"/> 
		<xsl:text disable-output-escaping="yes">]]&gt;</xsl:text> 

Extractng a message from an XML envelope CDATA section:

<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet xmlns:xsl="" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:var="" exclude-result-prefixes="msxsl var userCSharp" version="1.0" xmlns:ns0="" xmlns:userCSharp="">
  <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" />
  <xsl:template match="/">
			<xsl:value-of select="//*[local-name()='Payload']" disable-output-escaping="yes"/>