Teilen über


Exemplarische Vorgehensweise: Verarbeiten von WCF-Diensten mit dem WCF-BasicHttp-Adapter

Hinweis

Weitere Informationen zu Adaptern finden Sie unter Adapter in BizTalk Server.

Einführung

In dieser exemplarischen Vorgehensweise nutzen Sie einen Windows Communication Foundation-Dienst (WCF), der in Internetinformationsdienste (IIS) gehostet wird, indem Sie BizTalk-Messaging und den WCF-BasicHttp Sendeadapter verwenden. Dieser Adapter verwendet die BasicHttpBinding-Bindung, um eine Transport-/Protokollstapelimplementierung bereitzustellen, die mit früheren Versionen von Webdiensten kompatibel ist und als Brücke zwischen Microsoft BizTalk Server- und WCF-Funktionalität dient. Eine Orchestrierung kann an einen Sendeport gebunden werden, der einen WCF-Adapter verwendet, um einen WCF-Dienst aufzurufen und dessen Funktionalität innerhalb der logischen Geschäftsverarbeitung zu nutzen.

Der WCF-BasicHttp-Adapter besteht aus einem Sendeadapter und einem Empfangsadapter. In diesem Beispiel verwenden Sie nur die Sendeseite dieses Adapters, um WCF-Dienstanforderungen über das HTTP-Protokoll an einen WCF-Dienst zu senden. Für einen Solicit-Response Sendeport sendet der Sendeadapter an einen WCF-Dienst und erhält eine Ergebnisantwort zurück. Umgekehrt ermöglicht ein WCF-Empfangsadapter, dass eine BizTalk Server Orchestrierung veröffentlicht und von einer WCF-Clientanwendung extern aufgerufen wird. Weitere Informationen finden Sie unter Veröffentlichen von WCF-Diensten .

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

  • Verwenden Sie in Microsoft Visual Studio den Befehl Bereitstellen, um die Assemblys, die die BizTalk Server Projektmappe und den WCF-Dienst enthalten, in einem lokalen instance BizTalk Server bereitzustellen. Auf diese Weise wird eine BizTalk-Anwendung erstellt, die Assemblys enthält.

  • Verwenden Sie in Visual Studio den BizTalk WCF-Dienstnutzungs-Assistenten, um die BizTalk Server Schemas und Typen zu generieren, die für die Nutzung des WCF-Diensts erforderlich sind. Eine leere Orchestrierung wird ebenfalls generiert. Diese kann verwendet und an einen logischen Port gebunden werden. Diese Orchestrierung wird zusammen mit Schemas und Typen kompiliert und bereitgestellt. Die Orchestrierungsworkflowverarbeitung ist hier jedoch leer und wird in diesem Beispiel nicht verwendet, da es sich lediglich um ein reines BizTalk Server Messagingszenario handelt.

  • Konfigurieren Sie in der BizTalk Server Verwaltungskonsole das inhaltsbasierte Routing mithilfe des WCF-BasicHttp Sendeports. Sie konfigurieren den SOAPAction-Header , den der WCF-Zieldienst empfängt.

  • Konfigurieren Sie in der BizTalk Server-Verwaltungskonsole den Filterausdruck so, dass alle SOAP-Fehlermeldungen weitergeleitet werden, die ein WCF-Dienst an einen Ausgabeordner senden kann.

  • Konfigurieren Sie im IIS-Manager (Internet Information Services) die Webanwendung, die den WCF-Dienst hostet, um ihre Metadaten verfügbar zu machen. Nach der Aktivierung kann der BizTalk WCF-Dienstverbrauchs-Assistent diese Metadaten abrufen, um Typen und Schemas für den Zugriff auf den WCF-Dienst zu generieren.

Voraussetzungen

Stellen Sie zum Ausführen der Schritte in diesem Beispiel sicher, dass in der Umgebung die folgenden Komponenten installiert und die folgenden Voraussetzungen erfüllt sind:

  • 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 sollen.

  • 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, die einmalige Einrichtungsprozedur für die WCF-Beispiele unter Einmalige Setupprozedur für die Windows Communication Foundation-Beispiele aus.

  • Stellen Sie auf dem Computer, auf dem das Beispiel ausgeführt und eine Bindung oder eine .msi-Datei in BizTalk Server importiert, sicher, dass der Host kein vertrauenswürdiger Host ist, andernfalls tritt beim Import ein Fehler auf.

  • 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.

Bereitstellen des WCF-Beispieldiensts

  1. Führen Sie die selbstextrahierende WCFBasicHttpSendAdapter.exe-Datei aus, und extrahieren Sie die Dateien in den Ordner C:\WCFBasicHttpSendAdapter .

  2. Öffnen Sie C:\WCFBasicHttpSendAdapter\WCFBasicHttpSendAdapter.sln in Visual Studio.

  3. Erweitern Sie in Projektmappen-Explorer das Projekt BasicHttpWCFServiceConsuming. Dieses Projekt ist der WCF-Dienst, der vom Sendeport aufgerufen wird. Er wird in einer verwalteten Hostumgebung mithilfe der Internetinformationsdienste (IIS) gehostet. Hosting in IIS verwendet nachrichtenbasierte Aktivierung zum Verwalten der Aktivierung und der Lebensdauer des Diensts. Erweitern Sie App_Code, und öffnen Sie dann OrderProcess.cs zur Überprüfung. Dieser WCF-Dienst empfängt Auftragsanforderungsmeldungen über die OrderRequest-Methode . Die Datei "OrderProcess.cs" enthält den Schnittstellendehnung und die Implementierung des WCF-Diensts. Es gibt einfach Bestellantwortnachrichten über die OrderResponse-Methode zurück.

  4. Prüfen Sie die Datei OrderProcess.svc. Sie enthält nur eine Zeile, mit der IIS angewiesen wird, den Dienst für eine Clientanwendung zu aktivieren. Das @ServiceHost-Attribut , das zum Hosten des Diensts verwendet wird, ist ein Erweiterbarkeitspunkt innerhalb des WCF-Programmiermodells. Ein Factorymuster verwendet ServiceHostFactory, um eine instance von ServiceHost mit einer instance des WCF-Diensts zu erstellen, um eingehende Anforderungen zu verarbeiten. Die Instanziierung dieses instance basiert auf der ServiceBehaviorAttribute.ConcurrencyMode-Eigenschaft, die bestimmt, ob ein Dienst einen Thread, mehrere Threads oder wiederholte Aufrufe unterstützt. Die Instanziierung wird auch durch die ServiceBehavior.InstanceMode-Eigenschaft bestimmt, die bestimmt, ob ein nur ein instance alle Aufrufer bedient (Singleton), ob ein instance pro Aufruf erstellt wird (zustandslos), oder ob eine instance für jede Sitzung erstellt wird (zustandsbehaftet).

    <%@ServiceHost language=c# Debug="true" Service="Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.OrderProcessServiceType" %>
    
  5. Öffnen Sie in Visual Studio in Projektmappen-Explorer Web.config zu überprüfen. Wenn ein WCF-Dienst in IIS gehostet wird, wird eine Web.config-Datei anstelle einer app.config Datei konfiguriert, wie sie in einer Konsolenanwendung gehostet wird.

    • Stellen Sie sicher, dass das httpGetEnabled-Attribut des <serviceMetaData-Elements> auf true festgelegt ist, damit der BizTalk WCF-Assistent für die Nutzung von Diensten die Metadaten für den Dienst nutzen kann.

    • Stellen Sie sicher, dass das Mode-Attribut des <Sicherheitselements> auf None festgelegt ist. Da in dieser exemplarischen Vorgehensweise der Sicherheitsmodus None verwendet wird, muss die Webanwendung, die diesen Dienst hostt, so konfiguriert werden, dass sie anonymen Zugriff zulässt.

  6. Da die Assembly Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming im GAC installiert sein muss, benötigt sie eine Datei mit starkem Namen, um den Bereitstellungsprozess abzuschließen. Klicken Sie mit der rechten Maustaste auf das Projekt BasicHttpWcfServiceConsuming , und klicken Sie dann auf Eigenschaften. Klicken Sie auf der Seite Eigenschaften auf Signieren, und wählen Sie Assembly signieren aus. Klicken Sie in der Dropdownliste Schlüsseldatei mit starkem Namen auswählen auf den Pfeil nach unten, klicken Sie auf <Neu>, und geben Sie keyfile.snk in das Textfeld Name der Schlüsseldatei ein . Deaktivieren Sie Meine Schlüsseldatei mit einem Kennwort schützen, und klicken Sie dann auf OK.

  7. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf BasicHttpWcfServiceConsuming, und klicken Sie dann auf Neu erstellen.

  8. Kopieren Sie mit Windows Explorer den Inhalt von C:\WCFBasicHttpSendAdapter\BasicHttpWCFServiceConsuming in den Ordner C:\InetPub\wwwroot.

  9. Konfigurieren Sie die Webanwendung zum Hosten des WCF-Diensts wie folgt:

    1. Klicken Sie auf Start, zeigen Sie auf Administratortools, und klicken Sie dann auf Internetinformationsdienste-Manager (IIS).

    2. Erstellen Sie einen Anwendungspool, in dem dieser Dienst ausgeführt werden soll. Klicken Sie mit der rechten Maustaste auf Anwendungspools, klicken Sie auf Anwendungspool hinzufügen..., geben Sie einen Namen für den Anwendungspool ein, und klicken Sie dann auf OK.

    3. Erweitern Sie Anwendungspools, klicken Sie mit der rechten Maustaste auf den soeben erstellten Anwendungspool, und wählen Sie dann Erweiterte Einstellungen aus. Geben Sie im Abschnitt Prozessmodell das Konto ein, das Zugriff auf die BizTalk Server Datenbanken im Feld Identität hat.

    4. Erweitern Sie Sites, erweitern Sie Standardwebsite, klicken Sie mit der rechten Maustaste auf BasicHttpWCFServiceConsuming, und klicken Sie dann auf In Anwendung konvertieren , um eine Webanwendung für diesen WCF-Dienst zu erstellen.

    5. Klicken Sie im Dialogfeld In Anwendung konvertieren auf Auswählen , um den zuvor erstellten Anwendungspool auszuwählen, und klicken Sie dann auf OK.

    6. Klicken Sie in der Featureansicht auf das Authentifizierungssymbol , und stellen Sie sicher, dass die Option Anonyme Authentifizierungaktiviert ist. Dadurch werden WCF-Dienste mit dem Sicherheitsmodus None unterstützt.

  10. Testen Sie den veröffentlichten WCF-Dienst wie folgt:

    1. Erweitern Sie im IIS-Manager den Eintrag Websites, und erweitern Sie dann BasicHttpWCFServiceConsuming.

    2. Klicken Sie im IIS-Manager im rechten Bereich mit der rechten Maustaste auf OrderProcess.svc, und klicken Sie dann auf Durchsuchen. Dadurch wird internet Explorer geöffnet, um die Seite OrderProcessServiceType-Dienst anzuzeigen, die angibt, dass Sie einen ausgeführten WCF-Dienst erfolgreich erstellt haben. Die Seite enthält außerdem eine vollständige WSDL-Adresse, die Sie kopieren und mit dem Dienstmetadaten-Tool (svcutil.exe) verwenden können, um Proxycode und eine Konfigurationsdatei zu erstellen, mit deren Hilfe Sie eine Clientanwendung für den Dienst entwickeln können.

    3. Kopieren Sie die vollständige WSDL-Adresse in die Systemzwischenablage. Kopieren Sie den Teil "svcutil.exe" nicht: http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc?wsdl

Hinzufügen der Schemas und Typen für den WCF-BasicHttp-Adapter zur BizTalk-Beispielanwendung

  1. Da der Adapter den WCF-Dienst aufruft, benötigt er Informationen aus Schemas und Typen darüber, wie dieser Dienst mithilfe der Metadaten aufgerufen werden soll. BizTalkApp stellt die Artefakte bereit, um den WCF-Dienst zu nutzen. Klicken Sie in Visual Studio in Projektmappen-Explorer mit der rechten Maustaste auf BizTalkApp, klicken Sie auf Hinzufügen, und klicken Sie dann auf Generierte Elemente hinzufügen.

  2. Wählen Sie im Dialogfeld Generierte Elemente hinzufügen im Abschnitt Vorlagen die Option WCF-Dienst nutzen aus, und klicken Sie dann auf Hinzufügen.

  3. Klicken Sie auf der Seite Willkommen beim BizTalk WCF-Dienstverbrauchs-Assistent auf Weiter. Dieser Assistent liest die Metadata und erstellt Schemas und Typen.

  4. Wählen Sie auf der Seite Metadatenquelle die Endpunktoption Metadatenaustausch (MEX) aus, um Metadaten aus der URL zu nutzen, die Sie im vorherigen Verfahren in die Zwischenablage kopiert haben, und klicken Sie dann auf Weiter.

  5. Fügen Sie auf der Seite Metadatenendpunkt die vollständige WSDL-Adresse ein, die Sie im vorherigen Verfahren in die Dropdownliste Metadatenadresse kopiert haben, und klicken Sie dann auf Abrufen , um das Metadatendokument für den WCF-Beispieldienst abzurufen. Beim Abrufen der Metadaten wird die Schaltfläche Weiter aktiviert. Klicken Sie auf zum Fortfahren auf Weiter.

  6. Überprüfen Sie auf der Seite Zusammenfassung von WCF-Dienstmetadaten importieren Ihre Einstellungen. In diesem Dialogfeld werden die Namespace-, XSD- und WSDL-Zusammenfassungen der Metadaten angezeigt, die importiert werden sollen. Ferner werden die Orchestrierungs- (ODX), die Bindungs- (XML), und Schema-Dateien (XSD) angezeigt, die während des Importprozesses geschrieben werden. Klicken Sie auf Importieren , um die BizTalk-Artefakte und -Typen zu erstellen, die für die Nutzung des WCF-Beispieldiensts verwendet werden sollen.

  7. Klicken Sie auf der Seite Abschließen des BizTalk WCF-Dienstverbrauchs-Assistenten auf Fertig stellen.

  8. In Visual Studio generiert der BizTalk WCF-Dienstverbrauchs-Assistent in Projektmappen-Explorer die folgenden Dateien:

    • Eine Orchestrierungsdatei OrderProcessServiceType.odx. Für diese Orchestrierung sind keine Workflowphasen vorhanden. Sie können sie jedoch hinzufügen und an logische Ports binden, um den WCF-Dienst zu nutzen. Sie enthält die wichtigen BizTalk-Typen, wie Porttypen und mehrteilige Nachrichtentypen, die in diesem Beispiel verwendet werden. Doppelklicken Sie zum Anzeigen dieser Informationen auf die Orchestrierung OrderProcessServiceType.odx . Klicken Sie auf Ansicht, auf Andere Fenster, und klicken Sie auf Orchestrierungsansicht. Erweitern Sie Typen, Porttypen und dann IOrderProcess. Die Submit-Methode wird angezeigt. Erweitern Sie diese Methode, und Sie sehen die Porttypen OrderRequest und OrderResponse . Klicken Sie auf jeden Porttyp, und zeigen Sie ihre Beschreibungsfelder im Eigenschaftenbrowser an, und sehen Sie sich die verschiedenen WSDL-Eingabe- und Ausgabenachrichten an. Klicken Sie auf Mehrteilige Nachrichtentypen , und zeigen Sie die mehrteiligen Nachrichtentypen OrderRequest und OrderResponse an. Klicken Sie auf deren Beschreibungsfelder , und zeigen Sie die WDSL-Nachrichtennamen für jeden Nachrichtentyp an.

    • Zwei Schemadateien werden generiert. Die erste Schemadatei (OrderProcessServiceType_biztalk_WCF_basichttpsendadapter_basichttpWCFserviceconsuming.xsd) definiert die Nachrichtentypen, die der WCF-Beispieldienst verwendet. Es verwendet das Feld OrderID in OrderRequest - und OrderResponse-Aufrufen .

    • Die zweite Schemadatei (OrderProcessServiceType_schemas_microsoft_com_2003_10_Serialization.xsd) wird von DataContractSerializer für die Typen, Elemente und Attribute aus dem Namespace http://schemas.microsoft.com/2003/10/Serialization/exportiert.

    • Es werden zwei Bindungsdateien generiert, die später zum Erstellen der BizTalk-Anwendung verwendet werden: OrderProcessServiceType.BindingInfo.xml und OrderProcessServiceType_Custom.BindingInfo.xml. Im allgemeinen Fall werden Sie normalerweise die nicht benutzerdefinierte Bindungsdatei verwenden. In einigen seltenen Fällen, bei denen ein benutzerdefiniertes Bindungselement vorhanden ist, werden Sie aber die benutzerdefinierte Bindungsdatei verwenden. Das benutzerdefinierte Bindungselement erstellt Sendeports für die Anwendungen. Doppelklicken Sie auf die OrderProcessServiceType.BindingInfo.xml-Datei, suchen Sie nach der SendPort-Definitionszeile, und überprüfen Sie den Sendeport, der beim Importieren dieser Bindungsdatei in BizTalk Server erstellt wird:

      <SendPort Name="WCFSendPort_OrderProcessServiceType_ServiceEndpoint" …  >
      
    • Diese Dateien werden für den Sendeport mithilfe des WCF-Adapters verwendet, um den in den Metadaten beschriebenen WCF-Beispieldienst zu nutzen.

Bereitstellen der BizTalk-Beispiellösung BizTalkApp

  1. Stellen Sie die BizTalk Server-Anwendung wie folgt bereit:

    1. Klicken Sie in Visual Studio in Projektmappen-Explorer mit der rechten Maustaste auf BizTalkApp, und klicken Sie dann auf Eigenschaften .

    2. Klicken Sie im Fenster Project Designer auf die Registerkarte Bereitstellung, und ändern Sie dann die Servereigenschaft, wenn Sie einen anderen Datenbankserver für die BizTalk Server Management-Datenbank verwenden. Stellen Sie sicher, dass der Anwendungsname WCFBasicHttpSendAdapter lautet.

    3. Klicken Sie in Visual Studio in Projektmappen-Explorer mit der rechten Maustaste auf BizTalkApp, und klicken Sie dann auf Neu erstellen.

    4. Klicken Sie in Visual Studio in Projektmappen-Explorer mit der rechten Maustaste auf BizTalkApp, und klicken Sie dann auf Bereitstellen. Dadurch werden die Assembly Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp im GAC und die Artefakte für die BizTalk Server Anwendung mit dem Namen WCFBasicHttpSendAdapter bereitgestellt.

  2. Konfigurieren Sie wie folgt einen WCF-BasicHttp-Sendeport in der BizTalk-Anwendung:

    1. Klicken Sie auf Start, zeigen Sie auf Alle Programme, zeigen Sie auf Microsoft BizTalk Server 20xx, und klicken Sie dann auf BizTalk Server Verwaltung.

    2. Erweitern Sie in der BizTalk Server Verwaltungskonsole die BizTalk-Gruppe, erweitern Sie Anwendungen, klicken Sie mit der rechten Maustaste auf WCFBasicHttpSendAdapter, zeigen Sie auf Importieren, und klicken Sie dann auf Bindungen.

    3. Navigieren Sie im Dialogfeld Bindungen importieren zum Ordner C:\WCFBasicHttpSendAdapter\BizTalkApp , wählen Sie OrderProcessServiceType.BindingInfo.xmlaus, und klicken Sie dann auf Öffnen. Dies ist eine der Bindungsdateien, die zuvor vom BizTalk WCF-Dienstverbrauchs-Assistenten erstellt wurden. Dadurch wird der WCFSendPort_OrderProcessServiceType_ServiceEndpoint Sendeport erstellt.

    4. Erweitern Sie in der BizTalk Server Verwaltungskonsole WCFBasicHttpSendAdapter, und klicken Sie dann auf Ports senden.

    5. Doppelklicken Sie in der BizTalk Server Verwaltungskonsole im rechten Bereich auf WCFSendPort_OrderProcessServiceType_ServiceEndpoint, die durch Importieren der Bindungsdatei OrderProcessServiceType.BindingInfo.xml erstellt wurde. Dadurch wird das Dialogfeld Porteigenschaften senden angezeigt.

    6. Klicken Sie im Dialogfeld Porteigenschaften senden auf Konfigurieren.

    7. Überprüfen Sie auf der Registerkarte Allgemein das Feld Adresse(URI) von http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc. Dies ist die Adresse des IN IIS gehosteten WCF-Diensts, den der WCF-BasicHttp-Adapter aufruft.

    8. Überprüfen Sie den Inhalt des Textfelds SOAP-Aktionsheader/Aktion :

      <BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <Operation Name="Submit" Action="http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming/IOrderProcess/Submit" />
      </BtsActionMapping>
      

      Dieses Feld zeigt die Absicht der ausgehenden SOAP HTTP-Anforderungsnachricht an. Im vorliegenden Fall ist dies das Aufrufen des Submit-Vorgangs für die IOrderProcess-Schnittstelle aus dem Namespace Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.

      Hinweis

      Die Bindungsdatei, die der BizTalk WCF-Dienstverwendungs-Assistent generiert, verwendet das Aktionszuordnungsformat für die StaticAction-Eigenschaft . Wenn Sie inhaltsbasiertes Routing für die WCF-Sendeadapter zum Senden von Nachrichten an WCF-Dienste verwenden, müssen Sie die BTS festlegen. Vorgangseigenschaft in Pipelinekomponenten für das Aktionszuordnungsformat als Feld, das für inhaltsbasiertes Routing verwendet werden soll. Alternativ können Sie das Einzelaktionsformat für inhaltsbasiertes Routing verwenden. In dieser exemplarischen Vorgehensweise wird das Einzelaktionsformat verwendet. Weitere Informationen zum einzelnen Aktionsformat und zum Aktionszuordnungsformat finden Sie unter WCF-BasicHttp Transport Properties Dialog Box, Registerkarte Senden, Allgemein in der Referenz zur API-Namespacereferenz für Benutzeroberflächen und Entwickler.

    9. Klicken Sie zweimal auf OK, um zur BizTalk Server Verwaltungskonsole zurückzukehren.

  3. Erstellen Sie einen unidirektionalen, statischen Empfangsport sowie einen Dateiempfangs-Speicherort. Ein Empfangsport ist ein logischer Container für mindestens einen Empfangsspeicherort. Hier löschen Sie eine WCF-Beispielnachricht, die vom Dateiadapter abgerufen und dann an den WCF-Dienst gesendet wird.

    1. Erweitern Sie in der BizTalk Server Verwaltungskonsole WCFBasicHttpSendAdapter, klicken Sie mit der rechten Maustaste auf Empfangsports, zeigen Sie auf Neu, und klicken Sie dann auf Unidirektionale Empfangsport.

    2. Geben Sie im Dialogfeld Eigenschaften des Empfangsports im Textfeld Name den Namen ein WCFBasicSendAdapter.ReceivePurchaseOrder, und klicken Sie dann auf OK.

    3. Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf WCFBasicHttpSendAdapter.ReceivePurchaseOrder, zeigen Sie auf Neu, und klicken Sie dann auf Empfangsspeicherort.

    4. Geben Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts im Textfeld Name den Namen ein WCFBasicSendAdapter.ReceivePurchaseOrder.FILE.

    5. Wählen Sie im Dialogfeld Eigenschaften des Empfangsspeicherorts im Abschnitt Transport neben Typ die Option DATEI aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.

    6. Geben Sie im Dialogfeld FILE-Transporteigenschaften auf der Registerkarte Allgemein im Textfeld Empfangsordner den Namen C:\WCFBasicHttpSendAdapter\OrderRequestInein, und klicken Sie dann auf OK.

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

  4. Erstellen Sie einen Filter zum Weiterleiten von Nachrichten von dem Dateiempfangs-Speicherort, den Sie im vorherigen Schritt erstellt haben, an den WCF-BasicHttp-Sendeport. Ein einem Port zugeordneter Filter funktioniert insofern wie eine SQL WHERE-Klausel, dass, wenn er zu „Wahr“ ausgewertet wird, die Nachricht an diesen Port übergeben wird.

    1. Erweitern Sie in der BizTalk Server Verwaltungskonsole WCFBasicHttpSendAdapter, klicken Sie auf Ports senden, und doppelklicken Sie dann auf WCFSendPort_OrderProcessServiceType_ServiceEndpoint.

    2. Wählen Sie im Dialogfeld Porteigenschaften senden auf der Registerkarte Filter die Option BTS aus. ReceivePortName im Feld Eigenschaft geben Sie WCFBasicSendAdapter.ReceivePurchaseOrder in das Feld Wert ein, und klicken Sie dann auf OK. Mit diesem Filterausdruck werden die eingehenden Nachrichten vom Empfangsport WCFBasicSendAdapter.ReceivePurchaseOrder an diesen WCF-BasicHttp-Sendeport weitergeleitet.

  5. Erstellen Sie zwei Dateisendeports für die Beispielanwendung. Der erste Sendeport sendet Ausgabeantwortnachrichten vom WCF-Dienst an den FILE-Port. Der zweite Sendeport wird verwendet, um Fehlermeldungen zu verarbeiten, die vom WCF-Dienst gesendet werden, der für den Client bestimmt ist.

    1. Erweitern Sie in der BizTalk Server Verwaltungskonsole WCFBasicHttpSendAdapter, klicken Sie mit der rechten Maustaste auf Sendeports, zeigen Sie auf Neu, und klicken Sie dann auf Statischer unidirektionalen Sendeport.

    2. Geben Sie im Dialogfeld Porteigenschaften senden in das Textfeld Name ein WCFBasicSendAdapter.SendPurchaseOrder.FILE.

    3. Wählen Sie im Dialogfeld Porteigenschaften senden im Abschnitt Transport neben Typ die Option DATEI aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.

    4. Geben Sie im Dialogfeld DATEItransporteigenschaften auf der Registerkarte Allgemein im Textfeld Zielordnerden Namen C:\WCFBasicHttpSendAdapter\OrderResponseOut ein, und klicken Sie dann auf OK.

    5. Wählen Sie im Dialogfeld Porteigenschaften senden auf der Registerkarte Filter die Option BTS aus. Geben Sie http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse messageType im Feld Eigenschaft in das Feld Wert ein, um den Antwortmeldungstyp aus dem WCF-Beispieldienst anzugeben, und klicken Sie dann auf OK. Dieser Filterausdruck leitet Antwortnachrichten vom WCF-Beispieldienst an diesen FILE-Sendeport weiter. Der Sendeport abonniert Nachrichten des Typs OrderResponse, indem dieser Typ in der Filtereigenschaft angegeben wird. Dies ist der Nachrichtentyp der Antwortnachricht vom WCF-Dienst.

    6. Klicken Sie im Dialogfeld Porteigenschaften senden auf OK.

    7. Erweitern Sie in der BizTalk Server Verwaltungskonsole WCFBasicHttpSendAdapter, klicken Sie mit der rechten Maustaste auf Sendeports, zeigen Sie auf Neu, und klicken Sie dann auf Statischer unidirektionalen Sendeport.

    8. Geben Sie im Dialogfeld Porteigenschaften senden in das Textfeld Name ein WCFAdapterErrorSend.FILE.

    9. Wählen Sie im Dialogfeld Porteigenschaften senden im Abschnitt Transport neben Typ die Option DATEI aus der Dropdownliste aus, und klicken Sie dann auf Konfigurieren.

    10. Geben Sie im Dialogfeld DATEItransporteigenschaften auf der Registerkarte Allgemein im Textfeld Zielordner den Namen **C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut** ein, und klicken Sie dann auf OK.

    11. Wählen Sie im Dialogfeld Porteigenschaften senden auf der Registerkarte Filter die Option WCF aus. Geben Sie True isFault im Feld Eigenschaft in das Feld Wert ein, und klicken Sie dann auf OK. In einer Anwendung kann eine Ausnahme oder ein Fehler erkannt werden, indem der WCF überprüft wird . IsFault-Eigenschaft der Nachricht, die an den Aufrufer zurückgesendet wird. Diese Eigenschaft wird auf True festgelegt, wenn es sich bei der gesendeten Nachricht um eine SOAP-Fehlermeldung handelt. Dieser Filterausdruck leitet Fehlermeldungen vom WCF-Beispieldienst an diesen FILE-Sendeport weiter.

  6. Geben Sie den Hostnamen und Bindungen für die Beispielanwendung wie folgt an:

    Erweitern Sie in der BizTalk Server Verwaltungskonsole WCFBasicHttpSendAdapter, erweitern Sie Orchestrierungen, klicken Sie mit der rechten Maustaste auf microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp.OrderProcessServiceTypeClient-Orchestrierung, klicken Sie auf Eigenschaften, klicken Sie auf Bindungen, legen Sie Host auf BizTalkServerApplication fest, und klicken Sie dann auf OK, um die Konfiguration zu speichern.

Testen der Beispiellösung mit dem WCF-BasicHttp Sendeadapter

  1. Klicken Sie in der BizTalk Server Verwaltungskonsole mit der rechten Maustaste auf WCFBasicHttpSendAdapter, und klicken Sie dann auf Start.

  2. Klicken Sie im Dialogfeld Start auf Start.

  3. Erweitern Sie in der BizTalk Server Verwaltungskonsole Plattformeinstellungen, erweitern Sie Hostinstanzen, klicken Sie mit der rechten Maustaste auf BizTalkServerAnwendung oder einen anderen geeigneten Host instance, und klicken Sie dann auf Neu starten.

  4. Öffnen Sie eine Eingabeaufforderung, geben Sie iisreset ein, um IIS und die abhängigen Dienste wiederzuverwenden, und drücken Sie dann die EINGABETASTE.

  5. Kopieren Sie an der Eingabeaufforderung C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Sample.xml in den Ordner C:\WCFBasicHttpSendAdapter\OrderRequestIn . Diese Nachricht wird an den bidirektionalen WcfSendPort_OrderProcessServiceType_ServiceEndpoint statischen Solicit-Response Sendeport weitergeleitet. Die Sendeseite dieses bidirektionalen Sendeports ruft die Submit-Methode für den wcf-Dienst auf, der in IIS gehostet wird. Das Ergebnis wird an den Antwortport des WcfSendPort_OrderProcessServiceType_ServiceEndpoint Sendeports zurückgegeben. Der Sendeport WCFBasicSendAdapter.SendPurchaseOrder.FILE verfügt über ein Abonnement, das ausgelöst wird, wenn der Typ der Nachricht ist http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse. Die Nachricht wurde erfolgreich verarbeitet und in den Ordner C:\WCFBasicHttpSendAdapter\OrderResponseOut geschrieben.

  6. Überprüfen Sie den Ordner C:\WCFBasicHttpSendAdapter\OrderResponseOut auf eine Antwortnachricht vom WCF-Dienst.

  7. C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Invalid.xml An der Eingabeaufforderung zum Ordner C:\WCFBasicHttpSendAdapter\OrderRequestIn. Diese Meldung enthält einen ungültigen Namespace, sodass der WCF-Dienst eine Fehlermeldung zurückgibt.

  8. Überprüfen Sie den Ordner C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut auf eine XML-Datei, die die Fehlermeldung des WCF-Diensts enthält. Sehen Sie sich das <Fehlerzeichenfolgenfeld> an, das zeigt, dass die Ursache der Fehlermeldung ein ungültiger Nachrichtentext ist.

Weitere Informationen

Exemplarische Vorgehensweise: Veröffentlichen von WCF-Diensten mit dem WCF-BasicHttp-AdapterGewusst wie: Verwenden des BizTalk WCF-Dienstnutzungs-Assistenten zum Verwenden eines WCF-Diensts: Angeben des Nachrichtentexts für die WCF-Adapter