A lot can be said about development with Biztalk Server.  For someone new to Biztalk it takes a little practice to learn some of the non-intuitive tasks related to assembly redeployment and basic Biztalk Development.

One common error message is:

Some items in the removed assembly are still being used by items not defined in the same assembly, thus removal of the assembly failed.

Make sure that items in the assembly you are trying to remove fulfill the following conditions:

1. Pipelines, maps, and schemas are not being used by Send Ports or Receive Locations

2. Roles have no enlisted parties.


The most common problem I see is what is required to redeploy an assembly.  To redeploy an assembly the flowing must be true:

  • project is marked with redeploy = true

  • dependant assemblies but be undeployed

  • included maps and pipelines can not still be set on a send or receive port

  • Orchestration instances must be terminated

  • Orchestrations must be stopped and unenlisted

  • hosts must be restarted to release the cache

As the number of Ports, Maps, Orchestation, and Pipelines in your solution increase, tracking down these errors and manually stopping and starting can be difficult and time consuming.

I have put together a simple Windows Application that will perform some of these basic administrative tasks to help speed up the development process.  These tasks include:

  • Set all pipeline to default and remove all maps from Send and Receive Ports (make sure you have extracted your current settings as a binding file before hand)

  • Stop all Orchestrations

  • Stop all Send and Receive Ports

  • Start all Orchestrations

  • Start all Send and Receive Ports

  • Restart all in-process hosts (uses WMI)

All this simple form does is it loops around the existing ExplorerOM and WMI provided in Biztalk. 

Download: Biztalk Server Development Helper Tool

Setup is easy.  Just review the code and run the form.  You must have the correct permissions to run the tasks and to access a remote SQL.  If you are using a remote SQL Server, put that server name inside the top right text box.  It will default to your local computer name.  As always, run this code at your own risk.

Biztalk 2006 greatly simplifies this process.  In the mean time, if you are looking for something more powerful take a look at Jon Flander’s Biztalk Snapshot Tool