Teilen über


Exemplarische Vorgehensweise: Benutzerdefinierte Nachrichtenverarbeitung mit dem WCF-NetTcp-Adapter

In dieser exemplarischen Vorgehensweise übermittelt ein WCF-Client (Windows Communication Foundation) mithilfe des WCF-NetTcp-Adapters eine WCF-Nachricht mit eingebetteten binären JPEG-Bilddaten an einen BizTalk-Empfangsspeicherort. Das binär codierte JPEG-Bild wird mithilfe einer XPath-Anweisung (mit Base64-Knotencodierung) über die Einstellungen für eingehenden Nachrichtentext in der Konfiguration des Adapters extrahiert. Die XPath-Verarbeitung unterscheidet sich von der Standardmethode, die BizTalk Server für die Verarbeitung eingehender Nachrichten verwendet. In der Standardmethode ruft der Adapter den gesamten Inhalt des Body-Elements der WCF-Nachricht ab und übermittelt ihn dann an die BizTalk MessageBox-Datenbank. Bei der XPath-Nachrichtenverarbeitung werden bestimmte Teile einer eingehenden WCF-Nachricht extrahiert, um eine benutzerdefinierte BizTalk-Nachricht zu erstellen. In diesem Beispiel sucht die XPath-Verarbeitung ein XML-Element namens SendPicture in der eingehenden WCF-Nachricht (im XML-Format). Nachdem dieses Element gefunden wurde, extrahiert XPath den Wert des Elements als binär codiertes Base64-Objekt. Danach wird dieser Binärwert in einer BizTalk-Nachricht platziert. Die Nachricht wird in der MessageBox-Datenbank veröffentlicht und dann mithilfe eines Abonnements eines Sendeportfilters an einen Dateisendeport ausgegeben. In diesem Beispiel werden keine Orchestrierungen verwendet, und die gesamte Verarbeitung erfolgt mittels XPath über BizTalk Messaging.

Ein WCF-Adapter wird für die Kommunikation mit Windows Communication Foundation-Clients (WCF) und WCF-Remotediensten von BizTalk Server verwendet. Er ermöglicht die Veröffentlichung von Orchestrierungen und Schemas als WCF-Dienste und sorgt außerdem dafür, dass eine Orchestrierung externe WCF-Dienste in Anspruch nehmen kann. Der WCF-NetTcp-Adapter verwendet die NetTcpBinding-Bindung , d. h. der TCP-Transport mit einer optimierten binären Nachrichtencodierung. Der WCF-NetTcp-Adapter besteht aus einem Sendeadapter und einem Empfangsadapter. Der Adapter bietet Vollzugriff auf die SOAP-Sicherheit, Zuverlässigkeit und Transaktionsfunktionen.

In dieser exemplarischen Vorgehensweise erwerben Sie Kenntnisse zu den folgenden Aufgaben:

  • Importieren Sie mithilfe der BizTalk Server-Verwaltungskonsole eine MSI-Datei, um einen Sendeport, einen Empfangsport und einen Empfangsspeicherort zu erstellen.

  • Konfigurieren Sie mithilfe der BizTalk Server-Verwaltungskonsole einen WCF-Empfangsspeicherort, um eine XPath-Anweisung auszuführen, um Daten aus dem SendPicture-Element der WCF-Nachricht zu extrahieren.

Hinweis

Das hosttrusted-Element gibt an, ob der dem Empfangshandler zugeordnete Host vertrauenswürdig ist. In der bindings.xml-Datei wird die Standardeinstellung von false festgelegt, da uns in diesem Beispiel der BizTalk Server Enterprise Single Sign-On Service (SSO) egal ist. SSO ermöglicht die Übergabe von Benutzeranmeldeinformationen über BizTalk Server, um Drittanbieteranwendungen in BizTalk Server zu integrieren. Eine false Einstellung verhindert, dass eine BizTalk-Nachricht den BizTalk-Dienst im Rahmen der SSO-Verarbeitung durchläuft.

Voraussetzungen

Um die Schritte in diesem Beispiel auszuführen, stellen Sie sicher, dass Ihre Umgebung die folgenden Voraussetzungen installiert:

  • Sowohl der Computer, auf dem die Assemblys erstellt und der Bereitstellungsprozess ausgeführt wird, als auch der Computer, auf dem das Beispiel ausgeführt wird, erfordern Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 und Microsoft BizTalk Server.

  • Auf dem Computer, auf dem Sie die Assemblys erstellen und den Bereitstellungsvorgang ausführen, muss Microsoft Visual Studio installiert sein.

  • Der Computer, auf dem das Beispiel ausgeführt wird, erfordert die WCF-Adapter und die WCF-Verwaltungstools. Dies sind Optionen, die während des Setups von Microsoft BizTalk Server installiert werden.

  • Auf den Computern, die Sie zum Ausführen von Verwaltungsaufgaben verwenden, müssen Sie als Benutzerkonto ausführen, das Mitglied der Gruppe BizTalk Server Administratoren ist, um die BizTalk Server Anwendungseinstellungen in der BizTalk Server Verwaltungskonsole zu konfigurieren. Dieses Benutzerkonto muss auch zu den lokalen Administratoren gehören, damit Sie Anwendungen bereitstellen, Hostinstanzen verwalten sowie andere gegebenenfalls erforderliche Aufgaben ausführen können.

  • Führen Sie auf jedem Computer, der WCF-Funktionen erfordert, das einmalige Setupverfahren für die WCF-Beispiele unter aus https://go.microsoft.com/fwlink/?LinkId=135510.

  • Stellen Sie auf dem Computer, auf dem das Beispiel ausgeführt wird und eine .msi-Datei in BizTalk Server importiert, sicher, dass der Host kein vertrauenswürdiger Host ist oder der Import fehlschlägt.

  • Sie müssen den Code für diese exemplarische Vorgehensweise herunterladen und auf dem Computer extrahieren. Diese exemplarische Vorgehensweise ist Teil des gesamten WCF-Adapterpakets Exemplarische Vorgehensweise. Sie können die DateiWCFAdapterWalkthroughs.exe aus dem BizTalk Server Developer Center unter https://go.microsoft.com/fwlink/?LinkId=194140herunterladen.

Konfigurieren der WCFCustomMessageProcessing-Anwendung und der zugehörigen Elemente

  1. Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf Anwendungen, wählen Sie Importieren und dann MSI-Datei aus. Wechseln Sie zur C:\WCFCustomMessageProcessing\WCFCustomMessageProcessing.msi Datei, und klicken Sie dann auf Öffnen. Dadurch werden die folgenden Elemente für diese Anwendung erstellt:

    • FileSP-Sendeport: Der Speicherort im lokalen Dateisystem von C:\WCFCustomMessageProcessing\Out, an den die JPEG-Bilddaten von BizTalk Server als letzte Ausgabe der Beispielverarbeitung gesendet werden. Sie können den Sendeportfilter von BTS anzeigen. ReceivePortName = NetTcpRP , konfiguriert im Dialogfeld FileSP-Eigenschaften unter Filter. Der Filter ist dem Empfangsport NetTcp zugeordnet. Alle Nachrichten, die auf dem NetTcpRP-Empfangsport akzeptiert werden, werden an den Ausgabespeicherort des FileSP-Sendeports C:\WCFCustomMessageProcessing\Out gesendet, nachdem der Empfangsspeicherort die XPath-Verarbeitung für die Nachricht ausgeführt hat.

    • NetTcpRP-Empfangsport : Der Port, der logisch den NetTcpRL-Empfangsspeicherort enthält.

    • NetTcpRL-Empfangsspeicherort : Dies verwendet die Standardpipeline PassThroughTransmit und den WCF-NetTcp-Adapter, um eine XPath-Anweisung auszuführen, um die JPEG-Bilddaten aus der eingehenden WCF-Nachricht zu pullen.

Alternative Schritte zum Konfigurieren der WCFCustomMessageProcessing-Anwendung

  • Alternativ dazu finden Sie die manuellen Schritte zum Konfigurieren der Anwendung, ohne die C:\WCFCustomMessageProcessing\bindings.xml-Datei zu verwenden. Wenn der vorherige Vorgang zum Importieren der Bindungsdatei ordnungsgemäß ausgeführt wird, sind diese Schritte nicht erforderlich. Durch Lesen dieser Informationen können Sie jedoch möglicherweise Ihr Wissen in Bezug auf die MSI-Datei erweitern.

  • Erstellen Sie einen unidirektionale Empfangsport (NetTcpRP) und einen Empfangsspeicherort (NetTcpRL).

    1. Erweitern Sie die Anwendung WCFCustomMessageProcessing , klicken Sie mit der rechten Maustaste auf Empfangsports, wählen Sie Neu und dann Unidirektionale Empfangsport aus. Geben Sie im Dialogfeld Eigenschaften des Empfangsports unter Name einNetTcpRP, und klicken Sie auf OK.

    2. Klicken Sie mit der rechten Maustaste auf den NetTcpRP-Empfangsport , wählen Sie Neu und dann Empfangsspeicherort aus. Geben Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts für Name einNetTcRL. Klicken Sie im Abschnitt Transport auf das Dropdownlistenfeld Typ , wählen Sie in der Dropdownliste WCF-NetTcp aus, und klicken Sie dann auf Konfigurieren.

    3. Geben Sie auf der Registerkarte Allgemein im Feld Adresse(URI)den Namen net.tcp://localhost/NetTcpRL/Image ein.

    4. Legen Sie auf der Registerkarte Sicherheit den Sicherheitsmodus auf Keine fest.

    5. Wählen Sie auf der Registerkarte Nachricht die Option Pfad für den Eingehenden BizTalk-Nachrichtentext aus, und geben Sie /*[local-name()="SendPicture" and namespace-uri()='http://tempuri.org/']/*[local-name()="stream"] für den Textpfadausdruck ein. Wählen Sie Base64 als Knotencodierung aus. Die Option Pfad wird auf wert festgelegt, da der Text der WCF-Nachricht, die BizTalk Server empfängt, das folgende Format hat: <SendPicture xmlns="http://tempuri.org/"><Daten des>tatsächlichen Basis-64-codierten binären Bilds</Stream></SendPicture>

    6. Klicken Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts auf OK.

  • Erstellen Sie einen unidirektionalen Dateisendeport (FileSP), der vom Empfangsport NetTcpRP abonniert wird.

    1. Klicken Sie mit der rechten Maustaste auf Sendeports, wählen Sie Neu und dann Unidirektionale Empfangsport aus. Wählen Sie Statischer unidirektionale Port aus. Geben Sie unter Name den Namen FileSP ein.

    2. Klicken Sie im Abschnitt Transport auf das Dropdownlistenfeld Typ , wählen Sie in der Dropdownliste DATEI aus, und klicken Sie dann auf Konfigurieren.

    3. Geben Sie unter Zielordner ein C:\WCFCustomMessageProcessing\Out, und klicken Sie auf OK.

    4. Klicken Sie auf Filter, wählen Sie aus BTS.ReceivePortName == NetTcpRP, und klicken Sie dann auf OK.

Konfigurieren des Sendeports und Ausführen der Anwendung

  1. Klicken Sie mit der rechten Maustaste auf die Anwendung WCFCustomMessageProcessing, und wählen Sie Start aus. Dadurch wird der Empfangsspeicherort NetTcpRL eingetragen und der Sendeport FileSP gestartet.

  2. Öffnen Sie in Visual Studio die Client.sln Datei aus dem Ordner C:WCFCustomMessageProcessing\Client . Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Clientprojekt, und wählen Sie Erstellen aus.

  3. Wählen Sie in Visual Studio Debuggen und dann Starten ohne Debuggen aus, um die Client.exe-Anwendung auszuführen. Es wird eine Eingabeaufforderung angezeigt, die besagt, dass das Bild an BizTalk Server übermittelt wurde.

  4. Sehen Sie sich die erfolgreiche {GUID}-.jpg Dateiausgabe an den Sendeportdateiordner von C:\WCFCustomMessageProcessing\Out an. Dies zeigt, dass die Anwendungsverarbeitung, um die JPEG-Datei zu extrahieren und in einen FILE-Sendeport zu schreiben, erfolgreich abgeschlossen wurde.