How to Stop a BizTalk application programmatically
With this method you will be reproducing the same actions than doing this through the BizTalk administration console.
Create a C# .NET Console application (vbs can be used as well) and add a reference to the following DLL:
C:\Program Files (x86)\Microsoft BizTalk Server 2006\Developer Tools\Microsoft.BizTalk.ExplorerOM.dll
This assembly only works under x86 therefore you will need to compile your console application for x86 environment if running under x64.
Inside the Main method paste the following:
Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer btsCExp= new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();
btsCExp.ConnectionString = "server=DatabaseServerContainingTheBizTalkMgmtDb;database=BizTalkMgmtDbName;Integrated Security=SSPI";
Microsoft.BizTalk.ExplorerOM.Application app = btsCExp.Applications["ApplicationNameYouWantToRestart"];
btsCExp.SaveChanges(); //commit the changes
Console.ReadKey(); //this is no needed. Just for debugging purposes. You can erase it
Download a Example code
it is a Visual Studio 2013 Project. It has been tested only with BizTalk 2013R2.
This Console application expects arguments. 4 arguments (as you can see in the Debug Section)
- ApplicationName is the BizTalk Application name.
- SQLServerInstance is the name of the SQL server instance holding the Administration database.
- Action Only start or Stop actions are accepted.
- Name of the BizTalk Administration database. If missing the default name will be used.
You can download it from MSDN Code gallery here