Condividi tramite


ReceivePorts (esempio di BizTalk Server)

L'esempio ReceivePorts illustra come creare una nuova porta di ricezione usando le classi amministrative ExplorerOM .

Prerequisiti

  • È necessario disporre di BizTalk Server privilegi amministrativi per usare gli oggetti amministrativi in questo esempio.

  • L'esecuzione dello script di Windows PowerShell richiede i criteri di esecuzione di Windows PowerShell. Per altre informazioni, vedere about_Execution_Policies.

Scopo dell'esempio

Questo esempio illustra l'uso delle classi BtsCatalogExplorer e ReceivePort dallo spazio dei nomi Microsoft.BizTalk.ExplorerOM per aggiungere una nuova porta di ricezione a BizTalk Server. L'esempio è scritto in Microsoft Visual C#. In questo argomento è inoltre incluso uno script di esempio Windows PowerShell. Nell'esempio vengono illustrate le operazioni seguenti:

  • Connessione al database di gestione BizTalk tramite la classe BtsCatalogExplorer .

  • Aggiunta di una nuova porta di ricezione tramite il metodo AddNewReceivePort .

  • Enumerazione delle porte di ricezione.

  • Eliminazione delle porte di ricezione.

Percorso dell'esempio

L'esempio è disponibile nel seguente percorso dell'SDK:

<Percorso esempi>\Amministrazione\ExplorerOM\ReceivePorts

Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.

File Descrizione
ReceivePorts.cs File di origine Visual C# per le operazioni illustrate in questo esempio.
ReceivePorts.sln e ReceivePorts.csproj File di soluzione e di progetto per l'esempio.

Compilare questo esempio

  1. In Visual Studio aprire il file della soluzione ReceivePorts.sln.

  2. Nel menu Compila scegliere Compila soluzione.

Esegui questo esempio

  1. Aprire una finestra di comando e passare alla cartella seguente:

    <Percorso esempi>\Amministrazione\ExplorerOM\ReceivePorts\bin\Debug

  2. Eseguire il file ReceivePorts.exe. La nuova porta di ricezione deve essere creata e visualizzata nell'enumerazione porta. Dopo l'enumerazione, la porta di ricezione viene immediatamente rimossa.

Esempio di script di Windows PowerShell

Per illustrare le stesse funzionalità delle classi ExplorerOM, è possibile usare lo script di esempio seguente Windows PowerShell:

#==================================================================#
#===                                                            ===#
#=== 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

Di seguito è riportato un esempio di output dell'esecuzione dello script di Windows PowerShell per la creazione della nuova porta di ricezione:

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

Vedere anche

Admin-ExplorerOM (cartella di esempi di BizTalk Server)