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:
BizTalk ruft eine Textnachricht aus einer Datei in einem bestimmten Ordner ab.
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.
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.
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
Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:
<Beispielpfad>\Pipelines\CustomComponent
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
Fügen Sie eine Kopie der Textdatei Input.txt in den Ordner In ein.
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:
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.
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.
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.
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.