Freigeben über


CustomComponent (BizTalk Server-Beispiel)

Das Beispiel für eine benutzerdefinierte Komponente zeigt, wie eine benutzerdefinierte Pipelinekomponente erstellt und verwendet wird, die eine gestreamte Nachricht ändert. Außerdem zeigt dieses Beispiel, wie eine benutzerdefinierte Pipelinekomponente im Pipeline-Designer konfiguriert wird.

Ziel des Beispiels

In diesem Beispiel wird eine benutzerdefinierte Pipelinekomponente implementiert, die Zeichenfolgen präfixieren oder an die Eingabenachricht anfügen kann. BizTalk Server verarbeitet die Nachricht im Streamingmodus, was bedeutet, dass die gesamte Nachricht nie in den Arbeitsspeicher geladen wird. Für die benutzerdefinierte Pipelinekomponente werden folgende Schritte ausgeführt:

  1. BizTalk ruft eine Textnachricht aus einer Datei in einem bestimmten Ordner ab.

  2. Die Textnachricht wird über eine Empfangspipeline mit der benutzerdefinierten Pipelinekomponente FixMsg gesendet. Diese Komponente wird so konfiguriert, dass am Anfang der Nachricht eine Zeichenfolge eingefügt wird.

  3. Die sich daraus ergebende Textnachricht wird über eine Sendepipeline mit der benutzerdefinierten Pipelinekomponente FixMsg gesendet. Diese Komponente wird so konfiguriert, dass am Ende der Nachricht eine Zeichenfolge angefügt wird.

  4. BizTalk Server schreibt die resultierende Textnachricht in eine Datei in einem bestimmten Ordner.

Speicherort dieses Beispiels

<Beispielpfad>\Pipelines\CustomComponent\

In der folgenden Tabelle werden die Dateien in diesem Beispiel samt Zweck beschrieben.

Datei(en) BESCHREIBUNG
Cleanup.bat Wird zum Aufheben der Bereitstellung von Assemblys und zum Entfernen aus dem globalen Assemblycache (GAC) verwendet. Entfernt Sende- und Empfangsports. Entfernt nach Bedarf virtuelle Verzeichnisse von Microsoft Internetinformationsdienste (IIS).
Input.txt Beispieleingabedatei
Setup.bat Dient zum Erstellen und Initialisieren dieses Beispiels.
Im Ordner \FixMsg:

AssemblyInfo.cs, FixMsg.csproj, FixMsg.sln
Projekt- und Projektmappen- und Assembly-Informationsdatei für die benutzerdefinierte Pipelinekomponente in diesem Beispiel.
Im Ordner \FixMsg:

FixMsg.cs
Implementiert die Schnittstellen für die Pipelinekomponente.
Im Ordner \FixMsg:

FixMsgStream.cs
Implementiert einen Wrapper für die System.IO.Stream-Klasse und ermöglicht die Datenstromverarbeitung.
Im Ordner \FixMsg:

FixMsgDescription.cs
Stellt Methoden für den Zugriff auf und das Rendern von UI-Ressourcen der Komponente im Pipeline-Designer bereit.
Im Ordner \FixMsg:

FixMsg.resx
Enthält Beschreibungen von Eigenschaften, ein Symbol und Fehlermeldungen.
Im Ordner \PipelineComponentSample:

PipelineComponentSample.btproj, PipelineComponentSample.sln
Projekt- und Projektmappendatei für das BizTalk-Projekt in diesem Beispiel.
Im Ordner \PipelineComponentSample:

PipelineComponentSampleBinding.xml
Wird für das automatisierte Setup verwendet, z. B. Portbindung.
Im Ordner \PipelineComponentSample:

FixMsgReceivePipeline.btp, FixMsgSendPipeline.btp
BizTalk Server Pipelines, die die benutzerdefinierte FixMsg-Pipelinekomponente für die Empfangs- bzw. sendepipeline enthalten.

Erstellen und Initialisieren dieses Beispiels

So erstellen und initialisieren Sie das Beispiel für eine benutzerdefinierte Komponente

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\Pipelines\CustomComponent

  2. Führen Sie die Datei "Setup.bat" aus, von der folgende Aktionen ausgeführt werden:

    • Erstellen der Eingabeordner (In) und der Ausgabeordner (Out) für dieses Beispiel im folgenden Ordner:

      <Beispielpfad>\Pipelines\CustomComponent

    • Kompiliert und stellt die Visual Studio-Projekte für dieses Beispiel bereit.

    • Erstellen und Binden des BizTalk Server-Empfangsspeicherorts sowie der Sende- und Empfangsports.

      Hinweis

      In diesem Beispiel werden beim Erstellen und Binden der Ports die folgenden Warnungen angezeigt:

      Warning: Receive handler not specified for receive location "PCReceiveLocation"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "CustomComponent"; updating with first available host.

      Sie können diese Warnungen gefahrlos ignorieren. (Um möglichen Namensunterschieden in den Benutzerinstallationen Rechnung zu tragen, wurden der Hostname und der Empfangshandler in der Bindungsdatei ausgelassen.)

    • Aktiviert den Empfangsspeicherort und startet den Sendeport.

Hinweis

Sie sollten sicherstellen, dass von BizTalk Server während des Erstellungs- und Initialisierungsprozesses keine Fehler gemeldet wurden, bevor Sie dieses Beispiel ausführen.

Hinweis

Wenn Sie die Projekte in diesem Beispiel öffnen und erstellen möchten, ohne die Datei Setup.bat auszuführen, müssen Sie zunächst ein Schlüsselpaar mit starkem Namen mit dem entsprechenden .NET Framework-Hilfsprogramm für starke Namen (sn.exe) erstellen. Verwenden Sie dieses Schlüsselpaar zum Signieren der sich ergebenden Assemblys.

Hinweis

Damit die durch Setup.bat vorgenommenen Änderungen rückgängig gemacht werden, müssen Sie zuerst die Hostinstanz über das MMC-Snap-In BizTalk Server-Verwaltungskonsole beenden und dann neu starten. Führen Sie als Nächstes Cleanup.bat aus. "Cleanup.bat" müssen Sie ausführen, bevor "Setup.bat" ein zweites Mal ausgeführt wird.

Ausführen dieses Beispiels

So führen Sie das Beispiel für eine benutzerdefinierte Komponente aus

  1. Fügen Sie eine Kopie der Textdatei Input.txt in den Ordner In ein.

  2. Beobachten Sie die textdatei, die im Ordner Out erstellt wurde. Diese Datei enthält den Inhalt der Datei Input.txt mit zusätzlichem Text, der am Anfang (durch die Empfangspipeline) und am Ende (durch die Sendepipeline) eingefügt wird. Das Format des Namens dieser Datei ist <MessageID>.xml, wobei <MessageID> die GUID ist, die generiert wird, um die Nachricht eindeutig zu identifizieren.

Kommentare

Mit den folgenden Schritten können Sie die vorkonfigurierten Pipelines im Pipeline-Designer anzeigen:

  1. Doppelklicken Sie im Projektmappen-Explorer auf ReceivePipeline.btp, um die Empfangspipeline im Pipeline-Designer zu öffnen. Beachten Sie, dass die FixMsg-Komponente in der Validierungsphase der Empfangspipeline platziert wird.

  2. Klicken Sie auf der Entwurfsoberfläche in der Phase Überprüfen auf die Komponente FixMsg. Im Eigenschaftenfenster werden die Konfigurationseigenschaften der Pipelinekomponente angezeigt. Beachten Sie, dass die PrependData-Eigenschaft auf Data to prepend in receive pipeline string festgelegt ist.

  3. Doppelklicken Sie im Projektmappen-Explorer auf SendPipeline.btp, um die Sendepipeline im Pipeline-Designer zu öffnen. Beachten Sie, dass die FixMsg-Komponente in der Pre-Assemble-Phase der Sendepipeline platziert wird.

  4. Klicken Sie auf der Entwurfsoberfläche in der Phase Vormontage auf die Komponente FixMsg. Beachten Sie, dass die AppendData-Eigenschaft auf Data to append in send pipeline string festgelegt ist.

Weitere Informationen

Pipelines (Ordner für BizTalk Server-Beispiele)