【问题标题】:BTSTask and BTSControl for BizTalk 2009BizTalk 2009 的 BTSTask 和 BTSControl
【发布时间】:2010-06-30 13:38:18
【问题描述】:

我正在使用 BTSTask 和 BTSControl 在 BizTalk 2006 上执行一些部署操作。我们转移到 BizTalk 2009 并且这些工具似乎不适用于 BT2009。 BT2009有具体版本或新工具吗?

【问题讨论】:

  • 您对我正在使用的解决方案的详细信息感兴趣吗?

标签: biztalk biztalk-2009


【解决方案1】:

我会改为查看BizTalk Deployment Framework。它建立在 MSBuild 和 WIX 之上,可以做任何事情,从添加开发人员工具到快速部署用于开发的东西,再到通过 WIX 处理补丁。我强烈推荐它。

【讨论】:

    【解决方案2】:

    我确实遇到了 BizTalk 2009 的相同限制,但设法在 PowerShell 脚本中使用 Microsoft.BizTalk.ExplorerOM 解决了问题。

    停止和启动 BizTalk 应用程序的示例

    (关注this excellent blog post on BizTalk Deployments with PowerShell

    param
    (
        [switch] $start,
        [switch] $stop,
        [string] $appName,
        [string] $connectionstring
    )
    
    
        function Stop-Application
        {
            $app = $catalog.Applications[$appName]
    
            if ($app -eq $null)
            {
                Write-Host "Application " $appName " not found" -fore Red
            }
            else
            {
                if ($app.Status -ne 2)
                {
                    $null = $app.Stop(63)
                    $null = $catalog.SaveChanges()
                    $null = $catalog.Refresh()
                    Write-Host "Stopped application: " $appName -fore Green
                }
                else
                {
                    Write-Host "Application: " $appName " already stopped" -fore Yellow
                }
            }
        }
    
    
        function Start-Application
        {
            $app = $catalog.Applications[$appName]
    
            if ($app -eq $null)
            {
                Write-Host "Application " $appName " not found" -fore Red
            }
            else
            {
                if ($app.Status -eq 2)
                {
                    $null = $app.Start(63)
                    $null = $catalog.SaveChanges()
                    $null = $catalog.Refresh()
                    Write-Host "Started application: " $appName -fore Green
            }
            else
            {
                Write-Host "Application: " $appName " already started" -fore Yellow
            }
        }
    }
    
    
    $null = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")
    
    $catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
    $catalog.ConnectionString = $connectionstring
    
    
    if ($catalog.Applications -eq $null)
    {
        Write-Host "Application catalog is empty" -fore Red
    }
    
    
    if ($start)
    {
        Start-Application
    }
    
    
    if ($stop)
    {
        Stop-Application
    }
    

    我们的 BizTalk 部署由 MSBuild、BTSTask 和 ExplorerOM 通过 PowerShell 驱动。我什至设法解决了部署其他程序集(或端口)所依赖的程序集时的问题。

    【讨论】:

      【解决方案3】:

      我没有使用 BTSTask 或 BTSControl 的个人经验,但实际上我已经能够利用 Team Foundation Server 在 BizTalk 2009 上取得巨大成功。我基本上按照下面概述的文章进行了操作,然后根据我自己的环境对其进行了定制:

      BizTalk 2009 - Build & Deploy automation with Team Foundation Server 2008 – Part 1

      【讨论】:

      • 非常感谢 Andrew 提供此链接。问题是我们不应该在同一台 BizTalk 部署机器上安装 Visual Studio 和 Team Build。所以自定义 BizTalk 部署任务很棒,但不适用于我的情况:(
      • 如果我正确理解您的担忧,我认为它仍然有效。在我的环境中,我们有一个构建服务器、我的开发箱、一个 QA 服务器和生产服务器。 QA 服务器和生产服务器上没有安装 VS 或 Team Build。安装是通过引用 BizTalk 数据库完成的(实际上与导入 msi 相同)。目前,我确实有一个额外的步骤,即使用批处理文件对 dll 进行 GAC 处理。我已经设计了自动化的原型,但我还没有实现它(架构时间用完了)。
      猜你喜欢
      • 2014-05-30
      • 2016-11-26
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      相关资源
      最近更新 更多