Автоматизация создания местоположения получения для BizTalk с помощью Powershell, когда вы не видите ошибку - PullRequest
0 голосов
/ 26 февраля 2020

Мне нужен Powershell для создания порта приема и местоположения в уже существующем приложении при каждом запуске сценария. Задача этого местоположения получения состоит в том, чтобы выбирать файл каждый раз, когда файл отбрасывается в папку, которая существует в общей папке на другом сервере, и позже будет создан порт отправки для размещения файла где-нибудь еще. У меня есть скрипт ниже, который находится на рабочем столе сервера, на котором мой BizTalk включен. Когда я запускаю его, на экране появляется ошибка. Я не знаю, что это за ошибка, потому что она сразу исчезает. Единственное, что я знаю, это надпись красного цвета, и ничего не было создано. Я не уверен, что не так с моим текущим сценарием. Поскольку по соображениям безопасности я не могу указать местоположение файла и расположение сервера, я прокомментировал их в этом вопросе. Следующий скрипт, который у меня пока есть, ниже

#Create a receive port function#
#A new receive location will also be created and associated with the receive port#
#================================================================================#

Function CreateRPandRL()
{
    #Creating Receive Port
    $myReceivePort = $catalog.AddNewReceivePort($false)
    $myReceivePort.Name = "My Receive Port"

    #Creating Receive Location
    $myReceiveLocation = $myReceivePort.AddNewReceiveLocation()

    foreach ($handler in $catalog.ReceiveHandlers)
    {
        if ($handler.TransportType.Name -eq "File")
        {
            $myReceiveLocation.ReceiveHandler = $handler
            break
        }
    }

    #Associate a transport protocol and URI with receive location
    $myReceiveLocation.TransportType = $catalog.ProtocolTypes["File"]
    $myReceiveLocation.Address = #the file location that I am using which exists on another server

    #Assign the first receive pipeline found to process the message
    foreach ($pipeline in $catalog.Pipelines)
    {
        if ($pipeline.Type -eq [Microsoft.BizTalk.ExplorerOM.PipelineType] "Receive")
        {
            $myReceiveLocation.ReceivePipeline = $pipeline
            break
        }

    #Enable the receive location
    $myReceiveLocation.Enable = $true
    }

    #Try to commit the changes made so far.  If the commit fails,
    #roll back changes
    $catalog.SaveChanges()
}

#================================================================================#
#Main Script#
#================================================================================#

#make sure the ExplorerOM assembly is loaded
[void][System.reflection.Assembly]::LoadwithPartialName("Microsoft.BizTalk.ExplorerOM")

#Connect to the BizTalk management database
$Catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$Catalog.ConnectionString = "SERVER = #the BizTalk server location I am using; DATABASE=BizTalkMgmtDB; Integrated Security=SSPI"

#Create the new receive port with its receive location
CreateRPandRL
...