BizTalk 2013R2 now RTM

At TechEd this week, it was announced that BizTalk Server 2013 had been released to manufacturing.

In addition to the usual platform synchronization (including Visual Studio 2013), there are some exciting new features (including JSON support).

You can read about it here:


New Azure Portal (preview)

There was a LOT of new Azure enhancements and capabilities announced at the recent Build conference.

I won’t rehash everything that was said (all the content is available online), however, one of the things that got me most excited was the new portal experience. In case you haven’t seen it yet, here’s a great video that shows it off:


Happy 10th Birthday to my Blog

Hard to believe, but I’ve been blogging for 10 years now, my first post being Oct 29 2003. I have done 251 blog posts.

A lot has changed in that time, technologies have come and gone, the world is a very different place than it was back then.

Time marches on, and so will this blog!


In-place upgrade of ESB Toolkit 2.1 to 2.2

It seems most working with the ESB Toolkit 2.2 have done so from a clean install. As I couldn’t find any guidance on how to do this, I thought I would post the solution to save others some time. We needed to do this as we were doing an upgrade of BizTalk Server 2010 to BizTalk Server 2013.

1. Run the ESBTK 2.1 configuration wizard, choose “unconfigure features”, and unconfigure eveything

2. In the BizTalk Admin tool, remove any references that any BizTalk applications have to the Microsoft.Practices.ESB BizTalk application

3. In the BizTalk Admin tool, do a full stop of the Microsoft.Practices.ESB BizTalk application and remove it. Then go to “add/remove programs” and uninstall it

4. In “add/remove programs”, uninstall the ESB Toolkit

5. In “add/remove programs”, uninstall Enterprise Library 4.1

6. (This step is CRUCIAL) From an administrative command prompt, navigate to c:\windows\assembly\GAC_MSIL. Remove any subdirectories that begin with “Microsoft.Practices.ESB” (if you get an “access denied”, close all programs except for the command prompt). See the tip below on creating a batch file.

7. Install Enterprise Library 5.0 (you do not need the source code)

8. Install ESB Toolkit 2.2 from the BizTalk 2013 installation media

9. Run the ESB Toolkit configuration wizard and configure the toolkit. Be sure to choose “use existing database” for the exception and itinerary databases

If you miss step 6, the old ESB assemblies will be found and they will be trying to load EntLib 4.1 assemblies, leading to a baffling error message.

For step 6, we did a DIR and piped the output to a file, which we then took into Excel and cleaned up, creating a batch file to do all the removals for us. Thanks to Sandeep Kesiraju for his help developing the above.


Speaking at San Diego Code Camp July 28 2013

I’ll be speaking at the San Diego Code Camp next weekend, doing a session on BizTalk Server Best Practices. I just signed up a couple of days ago as I wasn’t sure if I’d be in town. This is a fun and interactive session, hope to see you there!

This is usually a very well run and attended event. For details, see


3 BizTalk Servers, 2 Datacenters, 1 On-prem

As you’re probably aware, Windows Azure IaaS went general availability recently. There are three BizTalk images in the gallery that you use to create a new BizTalk virtual machine.

This was too much for me to resist, I wanted to do something cool and distributed as a proof-of-concept. The result is this blog post, and the accompanying video that shows the demo running.

To get to the bottom line, I used 2 BizTalk VMs on Azure, and 1 running “on prem” (in a Hyper-V VM). The roles of the servers are as follows:

Server 1 (“Spoke”, Western Europe):

  • receives a batch of orders
  • disassembles the batch into individual orders
  • uses the WCF-WebHttp adapter to send each order to the hub via a REST POST

Server 2 (“Hub”, Southeast Asia)

  • receives each order via the WCF-WebHttp adapter
  • sends each order on the the Azure Service Bus using the WCF-NetTcpRelay adapter

Server 3 (“On-prem”, San Diego USA)

  • establishes an endpoint on the Windows Azure Service Bus using the WCF-NetTcpRelay adapter
  • receives order messages sent to that endpoint
  • persists them to file

As this is the ultimate “watch a file disappear here and another show up there” canonical BizTalk demo, I put a video together showing it working. All BizTalk people have done one of these demos before, but this is as far as I know the first one to circle the planet, leveraging Windows Azure.

I created this demo by first getting everything running locally in a single Hyper-V VM. Then, after deploying, all I needed to do was re-configure thee Spoke machine send port to that it would send to the Hub machine. For the BizTalk Servers running in Windows Azure, I used the Evaluation image, which has SQL Server installed (the Standard and Enterprise images do not).

The Spoke machine uses the default settings (it seems the default behavior of a WCF-WebHttp adapter in a send port is to do a POST, which makes sense).


The Hub machine receive location also uses the default settings:


The Hub machine send port (sending to the Windows Azure Service Bus) looks like this:



The credentials used above are the credentials for the Service Bus namespace.

Remember to watch the video!


FIX: Missing itinerary designer after installing BizTalk 2013

This happened to me. I’m not sure if it will prove to be a common problem, or just something specific to me, but I put this post together to save time for others that may run into it.

Scenario: I did a clean install of BizTalk Sever 2013. When I went into Visual Studio 2012, I did not have the option to add ESB Toolkit itinerary designers to a BizTalk project.

Explanation: During the BizTalk 2013 beta the itinerary designer was distributed as a VSIX package. However, in the RTM version it is no longer there. I went into the registry and saw there were entries for the designer, implying it was installed, yet it was not in Visual Studio.

Turns out that VSIX installation step is now integrated into the ESB Toolkit installation (yeah!), which is why there was no longer a separate VSIX package.

Fix: go to a Visual Studio command prompt, and run “devenv.exe /setup”. This “Forces Visual Studio to merge the resource metadata that describes menus, toolbars, and command groups, from all available VSPackages. ” (see