Freigeben über


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

  1. Öffnen Sie in Visual Studio die Projektmappendatei ReceivePorts.sln.

  2. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

Dieses Beispiel ausführen

  1. Öffnen Sie ein Befehlsfenster, und navigieren Sie zum folgenden Ordner:

    <Beispielpfad>\Admin\ExplorerOM\ReceivePorts\bin\Debug

  2. 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

Weitere Informationen

Admin\ExplorerOM (Ordner für BizTalk Server-Beispiele)