ReceivePorts (BizTalk Server-Beispiel)
Im ReceivePorts-Beispiel wird veranschaulicht, wie sie mithilfe der ExplorerOM-Verwaltungsklassen einen neuen Empfangsport erstellen.
Voraussetzungen
Sie müssen über BizTalk Server Administratorrechte verfügen, um die administrativen Objekte in diesem Beispiel verwenden zu können.
Für die Skriptausführung erfordert das Windows PowerShell-Skript die Windows PowerShell-Ausführungsrichtlinie. Weitere Informationen finden Sie unter about_Execution_Policies.
Ziel des Beispiels
Dieses Beispiel veranschaulicht die Verwendung der BtsCatalogExplorer- und ReceivePort-Klassen aus dem Microsoft.BizTalk.ExplorerOM-Namespace, um BizTalk Server einen neuen Empfangsport hinzuzufügen. Das Beispiel ist in Microsoft Visual C# geschrieben. Ein Windows PowerShell-Beispielskript ist ebenfalls Bestandteil dieses Themas. Mit dem Beispiel werden die folgenden Vorgänge veranschaulicht:
Herstellen einer Verbindung mit der BizTalk Management-Datenbank mithilfe der BtsCatalogExplorer-Klasse .
Hinzufügen eines neuen Empfangsports mithilfe der AddNewReceivePort-Methode .
Aufzählen von Empfangsports
Löschen von Empfangsports
Speicherort dieses Beispiels
Das Beispiel ist im folgenden SDK-Verzeichnis gespeichert:
<Beispielpfad>\Admin\ExplorerOM\ReceivePorts
In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.
Datei(en) | BESCHREIBUNG |
---|---|
ReceivePorts.cs | Visual C#-Quelldatei für Vorgänge, die in diesem Beispiel veranschaulicht werden. |
ReceivePorts.sln; ReceivePorts.csproj | Projektmappen- und Projektdatei für das Beispiel |
Erstellen dieses Beispiels
Öffnen Sie in Visual Studio die Projektmappendatei ReceivePorts.sln.
Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
Dieses Beispiel ausführen
Öffnen Sie ein Befehlsfenster, und navigieren Sie zum folgenden Ordner:
<Beispielpfad>\Admin\ExplorerOM\ReceivePorts\bin\Debug
Führen Sie die Datei ReceivePorts.exe aus. Der neue Empfangsport sollte erstellt und in der Portaufzählung angezeigt werden. Nach der Aufzählung wird der Empfangsport sofort entfernt.
Beispiel für ein Windows PowerShell-Skript
Das folgende Windows PowerShell Beispielskript kann verwendet werden, um die gleichen Features der ExplorerOM-Klassen zu veranschaulichen:
#==================================================================#
#=== ===#
#=== Create a new receive port named "My Receive Port". ===#
#=== ===#
#==================================================================#
Function CreateReceivePort()
{
#=== Passing false here creates a one-way receive port opposed to a two-way ===#
$myreceivePort = $catalog.AddNewReceivePort($false)
$myreceivePort.Name = "My Receive Port"
$myreceivePort.Tracking = [Microsoft.BizTalk.ExplorerOM.TrackingTypes] "AfterReceivePipeline"
#=== Try to commit the changes made so far. If the commit fails, ===#
#=== roll back all changes. ===#
$catalog.SaveChanges()
}
#===============================================================#
#=== ===#
#=== Delete the receive port named "My Receive Port" ===#
#=== ===#
#===============================================================#
Function DeleteReceivePort
{
$receivePort = $catalog.ReceivePorts["My Receive Port"]
if ($receivePort -ne $null)
{
$catalog.RemoveReceivePort($receivePort)
#=== Try to commit the changes made so far. If the commit fails, ===#
#=== roll back all changes in the trap handler. ===#
$catalog.SaveChanges()
}
}
#================================================================#
#=== ===#
#=== Enumerate the receive ports. ===#
#=== ===#
#================================================================#
Function EnumerateReceivePorts
{
#=== Enumerate the receive ports. ===#
foreach ($receivePort in $catalog.ReceivePorts)
{
Write-host "`r`n$($receivePort.Name)"
}
Write-host ""
}
#===================#
#=== 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=.;DATABASE=BizTalkMgmtDb;Integrated Security=SSPI"
#==================================================================#
#=== Register a trap handler to discard changes on exceptions ===#
#=== Execution will continue in the event we want to delete the ===#
#=== receive port. ===#
#==================================================================#
$Script:NoExceptionOccurred = $true
$ErrorActionPreference="silentlycontinue"
trap
{
$Script:NoExceptionOccurred = $false
"Exception encountered:`r`n"; $_; "`r`nDiscarding changes and continuing execution so we can attempt to clean up the receive port...`r`n"
$Catalog.DiscardChanges()
}
#=== Create the new receive port ===#
Write-Host "`r`nAttempting to create `"My Receive Port`"..."
CreateReceivePort
#=== Enumerate each receive port ===#
Write-Host "`r`nEnumerating all receive ports...`r`n"
EnumerateReceivePorts
#=== Prompt before removing the new example receive port ===#
Write-Host "`r`nPress <ENTER> to delete `"My Receive Port`"..."
Read-Host
DeleteReceivePort
#=== Enumerate again to show the receive port was removed ===#
Write-Host "`r`nEnumerating all receive ports to show `"My Receive Port`" was removed...`r`n"
EnumerateReceivePorts
Nachfolgend sehen Sie ein Beispiel für die Ausführung des Windows PowerShell-Skripts zum Erstellen des neuen Empfangsports:
PS C:\> .\receiveports.ps1
Attempting to create "My Receive Port"...
Enumerating all receive ports...
BatchControlMessageRecvPort
ResendReceivePort
HelloWorldReceivePort
CBRReceivePort
RP_ReceivePOFromInternal
RP_ShipmentAgency1_OrderFiles
RP_ShipmentAgency2_OrderFiles
RP_ReceivePOFromBuyer
RP_Receive_ShipmentAgency_Ack
My Receive Port
Press <ENTER> to delete "My Receive Port"...
Enumerating all receive ports to show "My Receive Port" was removed...
BatchControlMessageRecvPort
ResendReceivePort
HelloWorldReceivePort
CBRReceivePort
RP_ReceivePOFromInternal
RP_ShipmentAgency1_OrderFiles
RP_ShipmentAgency2_OrderFiles
RP_ReceivePOFromBuyer
RP_Receive_ShipmentAgency_Ack