SubmitDirect (BizTalk Server-Beispiel)

Das SubmitDirect-Beispiel veranschaulicht, wie sie programmgesteuert unidirektionale Nachrichten und Anforderungs-/Antwortnachrichten an Microsoft BizTalk Server von übermitteln. NET-basierte Anwendungen. Das Beispiel veranschaulicht die Verwendung von BizTalk Server-APIs für Adapter. Außerdem wird ein Empfangsadapter namens Submit bereitgestellt, der zum Senden von Nachrichten an BizTalk Server verwendet werden kann.

Voraussetzungen

Stellen Sie vor Ausführung dieses Beispiels sicher, dass Sie als ein Benutzer angemeldet sind, der der Gruppe Benutzer isolierter BizTalk-Hosts angehört.

Ziel des Beispiels

Dieses Beispiel zeigt, wie verschiedene Aufgaben im Zusammenhang mit BizTalk-Adaptern ausgeführt werden. Insbesondere werden folgende Vorgehensweisen gezeigt:

  • Arbeiten mit isolierten Adaptern, die außerhalb des BizTalk Server-Prozesses ausgeführt werden. Der Submit-Adapter ist ein isolierter Adapter, da er von einem Prozess außerhalb des BizTalk Server-Prozesses erstellt wird (Sie starten ihn als .NET-Anwendung).

  • Senden von Nachrichtenbatches an BizTalk Server. Der Submit-Adapter verwendet Sendefunktionen für Batchnachrichten, um mehrere Nachrichten gleichzeitig zu senden.

  • Synchrones Senden von Nachrichten unter Verwendung eines Anforderungsantwortparadigmas sowie unter asynchroner Verwendung eines unidirektionalen Paradigmas.

  • Registrieren Sie einen Adapter bei BizTalk Server. Dieses Beispiel zeigt, wie ein Adapter registriert wird, und stellt eine ausführbare Registrierungsdatei zum Automatisieren der Adapterregistrierung bereit.

    Tatsächlich besteht dieses Beispiel aus zwei Beispielen, und zwar den folgenden:

  • Senden eines Batchs von unidirektionalen Nachrichten. Die Konsolenanwendung SubmitMessages.exe verwendet die Zeichenfolgen aus der Befehlszeile und übermittelt jede als separate Nachricht an BizTalk Server. Jede dieser übermittelten Nachrichten wird am Empfangsspeicherort von BizTalk Server abgeholt, über Passthrough-Empfangs- und Sendepipelines gesendet und dann in eine Textdatei geschrieben.

  • Senden einer Anforderungsantwortnachricht. Die Konsolenanwendung SubmitRequest.exe die in der Befehlszeile angegebene .xml-Datei und übermittelt sie an BizTalk Server. Das Schema dieser XML-Datei definiert Elemente, die zwei Ganzzahlfelder enthalten. BizTalk Server übernimmt die .xml-Datei und verarbeitet sie mit einer Orchestrierung (mit einem Anforderungs-/Antwortport). Es erzeugt mithilfe einer Zuordnung eine XML-Antwortnachricht, die eine Ganzzahl (Produkt der beiden Ganzzahlen in der Anforderung) zurückgibt. Nachdem die Konsolenanwendung die Antwort empfangen hat, zeigt sie das Ergebnis an.

Speicherort dieses Beispiels

<Beispielpfad>\AdaptersDevelopment\SubmitDirect\

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

Datei(en) BESCHREIBUNG
Cleanup.bat Nimmt die Bereitstellung der Assemblys zurück und entfernt sie aus dem globalen Assemblycache (GAC), entfernt Sende- und Empfangsport und entfernt die virtuellen IIS-Verzeichnisse (Microsoft Internet Information Services, Internetinformationsdienste) nach Bedarf.
Setup.bat Erstellt und initialisiert dieses Beispiel.
SubmitDirect.sln Projektmappendatei mit dem BizTalk-Projekt im Ordner ProcessRequest und den Microsoft Visual C#-Profilen in den anderen Ordnern.
SubmitMessagesBinding.xml, SubmitRequestBinding.xml Wird für das automatisierte Setup verwendet, z. B. Portbindung.
Im Ordner \ProcessRequest:

DocIn.xsd, DocOut.xsd, Multiplier.odx, Multiply.btm, ProcessRequest.btproj
Stellt ein BizTalk-Projekt bereit, in dem Ganzzahlen im Anforderungsantwortszenario multipliziert werden.
Im Ordner \SubmitMessages:

AssemblyInfo.cs, SubmitMessages.cs, SubmitMessages.csproj
Stellt ein Visual C#-Projekt für die Konsolenanwendung bereit, im dem die Zeichenfolgenparameter der Befehlszeile als ein Batch separater Nachrichten übergeben werden.
Im Ordner \SubmitRequest:

AssemblyInfo.cs, DocInstance.xml, SubmitRequest.cs, SubmitRequest.csproj
Stellt ein C#-Projekt für die Konsolenanwendung bereit, in dem eine XML-Datei (DocInstance.xml) mit zwei zu multiplizierenden Ganzzahlen übergeben wird.
Im Ordner \TransportProxyUtils:

AssemblyInfo.cs, MessageHelper.cs, MessagingAPIInterface.cs, MessagingAPIs.cs, ResponseCallBack.cs, TpBatchAsyncCallback.cs, TpBatchAsyncResult.cs, TpBatchStatus.cs, TransportProxyUtils.csproj
Stellt ein C#-Projekt für den Laufzeitteil des Submit-Adapters bereit, in dem Methoden für synchrone und asynchrone Nachrichtenübermittlung sowie für Batch- und Einzelanforderungs-Nachrichtenübermittlung implementiert werden.
Im Ordner \TransportProxyUtilsReg:

AssemblyInfo.cs, RegisterAdapter.cs, TransportProxyUtilsReg.csproj
Stellt ein Visual C#-Projekt bereit, das Code veranschaulicht, den Sie zum Registrieren von Adaptern bei BizTalk Server verwenden können.
Im Ordner \TransportProxyUtilsUI:

AssemblyInfo.cs, TransportProxyUtilsMgmt.cs, TransportProxyUtilsUI.csproj
Stellt ein Visual C#-Projekt für den Benutzeroberflächenteil des Submit-Adapters bereit.

Erstellen und Initialisieren des Beispiels

So erstellen und initialisieren Sie das Beispiel „SubmitDirect“

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\AdaptersDevelopment\SubmitDirect

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

    • Erstellen des folgenden Ausgabeordners für den Batchübermittlungsteil dieses Beispiels.

      <Beispielpfad>\AdaptersDevelopment\SubmitDirect\Out

    • Kompiliert die verschiedenen Visual Studio-Projekte für dieses Beispiel.

    • Registriert den Submit-Adapter bei BizTalk Server.

    • Erstellt und bindet die BizTalk Server Empfangsspeicherorte sowie die 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 "SubmitDirectRL"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.ProcessRequest.Multiplier"; 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.)

    • Aktivieren der Empfangsspeicherorte sowie Starten der Sendeports und der Orchestrierung.

      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 für starke Namen mit dem entsprechenden .NET Framework-Hilfsprogramm (sn.exe) erstellen. Verwenden Sie dieses Schlüsselpaar zum Signieren der resultierenden Assemblys.

      Hinweis

      Wenn Sie von "Setup.bat" vorgenommene Änderungen rückgängig machen möchten, führen Sie "Cleanup.bat" aus. "Cleanup.bat" müssen Sie ausführen, bevor "Setup.bat" ein zweites Mal ausgeführt wird.

Ausführen des Beispiels

Weil dieses Beispiel den Dateiadapter verwendet, muss der BizTalk-Host (BizTalkServerApplication) ausgeführt werden. Führen Sie die folgenden Schritte aus, um das Beispiel SubmitDirect auszuführen.

So führen Sie den Batchübermittlungsteil des Beispiels „SubmitDirect“ aus

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\AdaptersDevelopment\SubmitDirect\SubmitMessages\bin\Debug

  2. Führen Sie die Datei SubmitMessages.exe aus, von der mehrere Zeichenfolgen in der Befehlszeile übergeben werden.

    Beispiel: SubmitMessages msg1 msg2 msg3

  3. Beobachten Sie die mehrere Textdateien, die im Ausgabeordner Out erstellt wurden. Diese Dateien enthalten die Zeichenfolgen, die über die Befehlszeile übergeben werden, eine pro Datei.

So führen Sie den Anforderungsantwortteil des Beispiels „SubmitDirect“ aus

  1. Navigieren Sie in einem Befehlsfenster zum folgenden Ordner:

    <Beispielpfad>\AdaptersDevelopment\SubmitDirect\SubmitRequest\bin\Debug

  2. Führen Sie die Datei SubmitRequest.exe aus, von der ein geeigneter XML-Dateiname in der Befehlszeile übergeben wird.

    Beispiel: SubmitRequest .. \.. \DocInstance.xml

  3. Untersuchen Sie die XML-Antwortnachricht mit dem Ergebnis der Multiplikation, die in der Konsole angezeigt wird.

Kommentare

Sie können den Submit-Adapter in anderen Anwendungen verwenden. Sie können es von jedem verwenden. NET-basierter Code zum programmgesteuerten Senden von Nachrichten an Ihre BizTalk Server. Gehen Sie zur Verwendung dieses Adapters zusammen mit Ihrem Code folgendermaßen vor:

So verwenden Sie den Beispieladapter zusammen mit Ihrem Code

  1. Registrieren Sie den Submit-Adapter bei Ihrem BizTalk Server. Wenn Sie die mit diesem Beispiel bereitgestellte Datei Setup.bat ausgeführt haben, sollte der Adapter bereits registriert und einsatzbereit sein. Andernfalls können Sie ihn registrieren, indem Sie die Projekte TransportProxyUtils.csproj, TransportProxyUtilsUI.csproj und TransportProxyUtilsReg.csproj und dann die vom vorhergehenden Projekt, RegisterAdapter.exe, erzeugte ausführbare Datei ausführen.

    Wichtig

    Wenn Sie BizTalk auf einem 64-Bit-Computer installieren, ändern Sie alle Instanzen des registrierungseintrags HKEY_CLASSES_ROOT\CLSID\ in HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ in der Datei RegisterAdapter.cs .

  2. Erstellen Sie einen Empfangsport mit einem Empfangsspeicherort, der den Submit-Adapter verwendet. Geben Sie die Adresse des Empfangsspeicherorts an. Die Adresse kann eine beliebige Zeichenfolge sein, die innerhalb der von diesem Adapter verwendeten Empfangsspeicherorte eindeutig ist.

  3. Verweisen Sie auf die Assembly Microsoft.BizTalk.SDKSamples.AdaptersDevelopment.TransportProxyUtils.dll in Ihrem Visual Studio-Projekt.

  4. Senden Sie Nachrichten an Ihre BizTalk Server mithilfe einer oder mehrerer der folgenden Methoden, die von dieser Assembly bereitgestellt werden.

    Methode(n) BESCHREIBUNG
    SubmitMessage()

    BeginSubmitMessage()

    EndSubmitMessage()
    Synchrone und asynchrone Methoden zum Übermitteln einer unidirektionale Nachricht an BizTalk Server. Die Adresse des Empfangsspeicherorts, an den die Nachricht gesendet wird, muss im Nachrichtenkontext festgelegt werden.

    Ein Wahrheitswert zur Angabe des Übermittlungsstatus (Erfolg/Fehler) wird zurückgegeben.
    SubmitMessages()

    BeginSubmitMessages()

    EndSubmitMessages()
    Synchrone und asynchrone Methoden zum Übermitteln eines Arrays unidirektionale Nachrichten an BizTalk Server. Die Adressen der Empfangsspeicherorte, an die die Nachrichten gesendet werden, sollte für den Kontext der Nachrichten festgelegt werden.

    Ein Wahrheitswert zur Angabe des Übermittlungsstatus (Erfolg/Fehler) wird zurückgegeben.
    SubmitSyncMessage()

    BeginSubmitSyncMessage()

    EndSubmitSyncMessage()
    Synchrone und asynchrone Methoden zum Senden einer Anforderungsnachricht an BizTalk Server. Die Adresse des Empfangsspeicherorts, an den die Nachricht gesendet wird, sollte für den Nachrichtenkontext festgelegt werden.

    Die Antwortnachricht wird zurückgegeben.
    CreateMessageFromString() Erstellt ein BizTalk Server Nachrichtenobjekt aus einer Zeichenfolge und legt die Adresseigenschaft des Empfangsspeicherorts im Nachrichtenkontext fest.

    Gibt ein BizTalk-Nachrichtenobjekt zurück.
    CreateMessageFromStream() Erstellt ein BizTalk Server Nachrichtenobjekt aus einem Datenstrom und legt die Address-Eigenschaft des Empfangsspeicherorts im Nachrichtenkontext fest.

    Gibt ein BizTalk Server-Nachrichtenobjekt zurück.

    Einzelheiten zu den Parameter- und Rückgabetypen für diese Methoden finden Sie in der Datei MessagingAPIInterface.cs im Ordner TransportProxyUtils.

Weitere Informationen

Adapterbeispiele – Entwicklung
Registrieren eines Adapters