ApplicationManager(BizTalk Server 示例)

ApplicationManager 示例演示如何使用管理对象启动或停止 BizTalk 应用程序。

必备条件

  • 必须具有BizTalk Server管理权限才能使用此示例中的管理对象。

  • Windows PowerShell 脚本要求 Windows PowerShell 执行策略允许脚本执行。 有关详细信息,请参阅 about_Execution_Policies

本示例的用途

此示例演示如何使用 Microsoft.BizTalk.ExplorerOM 命名空间中的 BtsCatalogExplorerApplication 类来启动和停止已部署的 BizTalk 应用程序。 此示例是用 Microsoft Visual C# 编写的。 本主题中还包含 Windows PowerShell 示例脚本。 本示例将演示以下操作:

  • 使用 BtsCatalogExplorer 类连接到 BizTalk 管理数据库。

  • 根据应用程序名称从 BtsCatalogExplorer 查找应用程序实例。

  • 提交应用程序的启动和停止命令。

本示例的所在位置

本示例位于以下 SDK 位置中:

<示例路径>\管理员\ExplorerOM\ApplicationManager

下表显示了本示例中的文件及其用途说明:

文件 说明
Program.cs 此示例中演示的操作的 Visual C# 源文件。
ApplicationManager.sln、ApplicationManager.csproj、ApplicationManager.suo 示例的解决方案文件和项目文件。

生成并运行本示例

生成此示例

  1. 在 Visual Studio 中,打开解决方案文件 ApplicationManager.sln。

  2. 在“生成”菜单中,单击“生成解决方案”。

运行此示例

  1. 打开命令窗口并导航到以下文件夹:

    <示例路径>\管理员\ExplorerOM\ApplicationManager\bin\Debug

  2. 运行文件 ApplicationManager.exe 提供以下两个有序命令行参数:

    • <start|stop> First 参数是要对已部署的应用程序执行的操作。

    • <ApplicationName> Second 参数是已部署的应用程序的名称。

      例如:

      ApplicationManager.exe stop MyBizTalkApp
      

    命令行参数不足时运行示例将显示使用语法。 例如:

    Usage:
    
    ApplicationManager <start|stop> <Application Name>
    
    Where:
      <Application Name> = The name of the application that needs to be changed
    
    Example: ApplicationManager start Application1
    

Windows Powershell 脚本示例

以下Windows PowerShell脚本片段可用于演示 ExplorerOM 类的相同功能:

#=== Make sure the ExplorerOM assembly is loaded ===#

[void] [System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")

#=== Connect the BizTalk Management database ===#

$Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$Catalog.ConnectionString = "SERVER=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"

#=== Loop through applications in the catalog trying to find a name match ===#

foreach($app in $Catalog.Applications)
{
    if ($($app.Name) -ieq $args[1])
    {

        #=== The first command-line argument should be "start" or "stop" ===#

        if ($args[0] -ieq "start")
        {
            Write-Host `r`nIssuing start command to $app.Name...`r`n
            $app.Start([Microsoft.BizTalk.ExplorerOM.ApplicationStartOption] "StartAll")
            $Catalog.SaveChanges()
        }

        if ($args[0] -ieq "stop")
        {
            Write-Host `r`nIssuing stop command to $app.Name...`r`n
            $app.Stop([Microsoft.BizTalk.ExplorerOM.ApplicationStopOption] "StopAll")
            $Catalog.SaveChanges()
        }

    }
}

该脚本需要与 Visual C# 示例相同的命令行参数。 下面是一个运行 Windows PowerShell 脚本以启动部署的 BizTalk 应用程序的示例:

PS C:\> .\ApplicationManager.ps1 start MyBizTalkApp

Issuing start command to MyBizTalkApp ...

另请参阅

Admin-ExplorerOM(BizTalk Server 示例文件夹)