Handy BizTalk Debugging Tip

So, you’ve got Health and Activity Tracking (HAT) to look at the messages and orchestrations inside your BizTalk server, but typically you want more application level logging in the real world.

The Enterprise Instrumentation Framework (EIF) is a fantastic way of getting diagnostics/logging on the Microsoft platform, and you can of course leverage it from BizTalk, however for simple “What’s going on?” type stuff when your debugging then you can simply use System.Diagnostics.Debug .NET class.

You can use this from within any .NET components you call as usual, but crucially you can use it within an Expression shape in BizTalk to output say Promoted parts of a Message, debugging of the path in the orchestration taken (following a decide shape, etc.).  

Just makes life that bit easier – especially considering the pain it takes to unbind,unenlist, undeploy and then deploy, bind, enlist all over again J

You then need to be able to “see” this Debug, your best bet is DebugView from SysInternals, and while I’m here check out Process Explorer it’s had some massive changes over the past few months and now has built in symbol server support and the ability to see the call stack on threads in any process – Cool!

Comments (7)

  1. Roy says:


    dbgview is the best thing since sliced bread! 🙂 One cautionary note for readers though – make sure that ‘development’ builds of the Biztalk artefacts are created for the parts you wish to debug, since calls to the debug objects are stripped out of ‘deployment’ builds by the compiler…

    This particular gotcha caught me out a few times. It’s obvious that this happens when you’re writing code from scratch, but not so obvious when you’re developing Biztalk bits 🙂


  2. Enrico says:

    I think that it’s importante focused wich i want to monitor. If i have an error inside a input message i can’t do anything with HAT and EIF, but i can solve this problematic just via rchestration wrap the ecxception.


  3. Vinil says:

    Hi Darren,

    Do you have some samples of using EIF with Biztalk 2004. I have been trying to accomplish the same, but somehow it appears that the requirements of EIF are incompatible with Biztalk 2004.


    1. How would one go about having a class with RunInstaller Attribute (this is required for generating the EnterpriseInstrumentation.config file)

    2. I tried a simple call to the static Raise method (in an expression box in the orchestration.) To run this call, I put the EI.Config file in the Biztalk Program Files folder. Now this means that this config file is applicable across all of my orchestrations!

    I have put forth these questions to the newsgroup, and since it was urgent I was wondering if you could share any samples you might have.

    Thanks and regards,


    vinil.menon [ a t ] invensys.com

  4. Back in my COM+ VB6 days I always had a tough time to debug into my VB6 components that were running