We’ll I just spent about three hours tonight fighting with this issue, so I thought I’d post about it to hopefully save someone else from having to go through this.
I was trying to run a couple of samples from the ESB and I noticed that whenever I used an example that had to use an orchestration, I received the following error in my event log
Event Type: Warning
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5410
Date: 12/4/2007
Time: 4:08:39 PM
User: N/A
Computer: EDIBTS2006
Description:
An error occurred that requires the BizTalk service to terminate. The most common causes are the following:
1) An unexpected out of memory error.
OR
2) An inability to connect or a loss of connectivity to one of the BizTalk databases.
The service will shutdown and auto-restart in 1 minute. If the problematic database remains unavailable, this cycle will repeat.
Error message: Exception has been thrown by the target of an invocation.
Error source: mscorlib
My host instance would then shut down and try to restart itself every minute. Each retry would fail with this same error. I also ended up with a running service instance in the admin console that I couldn’t terminate.
Each time I sent another message, I would have to manually clean these left over instances from the DB before I could restart the host instance successfully. I finally noticed that this error was only occurring whenever a component in my “In-proc” host instance tried to run. Base on this I tracked the issue down the btsntsvc.exe.config file that we were suppose to edit during install. I had forgotten to remove the “[path]” place holder that is in the <ConfigurationFile> tag. We were suppose to replace this with the actual path to the Microsoft.Practices.ESB.PipelineComponents.config file. (I’ve did not have this step in my install checklists, so I have since added it). I realized that the AppDomains were not loading correctly and this caused my errors in every orchestration in that tried to run in that AppDomain.
This is what I had left in my config file:
<ConfigurationFile>
[path]\Microsoft.Practices.ESB.PipelineComponents.config
</ConfigurationFile>
As I said, I had forgotten to replace the [path] place holder. Anyways, I put in the proper path and I expected this to correct the situation, but I kept getting the same annoying error. After another hour of frustrated debugging, I realized that I had entered the config data like this:
<ConfigurationFile>
C:\Projects\Microsoft.Practices.ESB\source\code\core\config\Microsoft.Practices.ESB.PipelineComponents.config
</ConfigurationFile>
You’ll notice that I had put line breaks before and after the path and filename. It was these dam line break that were causing the problem. I took them out and and used this:
<ConfigurationFile>C:\Projects\Microsoft.Practices.ESB\source\code\core\config\Microsoft.Practices.ESB.PipelineComponents.config</ConfigurationFile>
Everything worked fine and the issues are gone.
I’ve seen a number of people asking about this on codeplex and other locations, so double check your settings and avoid the headaches.
Cheers and keep on BizTalking…
Peter