导出 Biztalk 动态发送端口处理程序名称

Export Biztalk Dynamic Send Port Handler Name

当我为动态发送端口导出绑定时,绑定文件中不会显示任何处理程序名称。那么有没有其他方法呢。

Stephen F March 的一个建议是使用 PowerShell 脚本来设置这些。

来自How to configure Send Handler for BizTalk 2013 Dynamic Send Port on deployment?

param
(
 [string] $bizTalkDbServer = ".",    
 [string] $bizTalkDbName = "BizTalkMgmtDb",
 [string] $fileHostInstance = "SendingHost",
 [string] $sendPortName = "sm_dynamic_sp_test"

)

[System.reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM") | Out-Null

$catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$catalog.ConnectionString = "SERVER=$bizTalkDbServer;DATABASE=$bizTalkDbName;Integrated Security=SSPI"

foreach($sp in $catalog.SendPorts)
{
 if($sp.Name -eq $sendPortName)
 {
  "Found send port $($sp.Name), analyzing send handler"

  foreach($sh in $sp.DynamicSendHandlers)
  {
   if($sh.SendHandler.TransportType.Name -eq "FILE")
   {   
    if($sh.SendHandler.Host.Name -ne $fileHostInstance)
    {
     "Changing $($sh.Name) send handler to '$fileHostInstance' from '$($sh.SendHandler.Host.Name)'"
     $sp.SetSendHandler("FILE", $fileHostInstance)
    }
    else
    {
     "Send handler for $($sp.Name) is already '$fileHostInstance' ignorning .. "
    }   
   }
  }
 }
}

$catalog.SaveChanges()

Sandro Pereira 也刚刚发布了一篇关于它的博客 BizTalk DevOps: How to configure Default Dynamic Send Port Handlers with PowerShell

BizTalk 2013 没有开箱即用,您需要使用上面列出的 powershell。

对于 BizTalk 2016 + CU8(仅限更高版本),您将能够在导出时在绑定文件中获取主机详细信息。

对于 BizTalk 2020 使用 CU2,CU1 对此有问题