Teilen über


Überlegungen beim Verwenden von WCF-Diensten mit den WCF-Sendeadaptern

Dieses Thema enthält Informationen, die beim Verwenden von WCF-Diensten mit den WCF-Adaptern berücksichtigt werden sollten.

Verwenden Sie die Option „Vorlage - Inhalt wird durch Vorlage festgelegt“, wenn Sie XML-fremden Inhalt als Anfragenachrichten senden

Die WCF-Adapter mit Textkörper –- BizTalk-Antworttextoption (Standardwert) lassen das Senden von Nicht-XML-Nachrichten wie Zeichendaten und Bitmapbildern nicht zu. Sie können die Option Vorlage – durch Vorlage angegebene Inhalte für die WCF-Adapter verwenden, um Nicht-XML-Nachrichten zu senden. Weitere Informationen zur Verwendung der Vorlage finden Sie unter Überlegungen beim Veröffentlichen von WCF-Diensten mit den WCF-Empfangsadaptern.

Der WCF-BasicHttp und WCF-WSHttp Sendeports ignorieren immer den Proxy, wenn die Dienstadresse mit beginnt. http://localhost

Die WCF-BasicHttp- und WCF-WSHttp Sendeports ignorieren den Proxy immer, wenn die Dienstadresse mit http://localhost der Konfiguration des Proxys auf der Registerkarte Proxy des Sendeports oder der Registerkarte Proxy des Sendehandlers beginnt. Sie sollten den Hostnamen (und nicht localhost) verwenden, wenn Clients bei der Kommunikation mit Diensten auf demselben Computer einen Proxy verwenden sollen.

Die WCF-BasicHttp- und WCF-WSHttp-Sendeadapter halten die Nachrichten an, wenn die Proxyeinstellung nicht richtig konfiguriert ist

Sie können die Proxyeinstellung für die WCF-BasicHttp und WCF-WSHttp Sendeadapter auf der Registerkarte Proxy des Sendeports oder auf der Registerkarte Proxy des Sendehandlers angeben. Ist diese Proxyeinstellung nicht richtig konfiguriert, halten die WCF-Adapter die Nachrichten an, und es wird die Fehlermeldung „Es war kein abhörender Endpunkt vorhanden, der die Nachricht annehmen konnte“ im Ereignisprotokoll eingetragen.

Einrichten der Berechtigungen für einen WCF-Sendeport mit dem WCF-NetMsmq-Adapter

Wenn ein WCF-Sendeport mit dem WCF-NetMsmq-Adapter eine Nachricht an einen mit NetMsmqBinding veröffentlichten WCF-Dienst sendet, adressiert er die Nachricht an die Zielwarteschlange, also die Warteschlange, die vom Warteschlangen-Manager des Diensts verwaltet wird. Der Warteschlangen-Manager auf dem Client sendet die Nachricht an eine Übertragungswarteschlange (auch: Ausgangswarteschlange). Die Übertragungswarteschlange ist eine Warteschlange des clientseitigen Warteschlangen-Managers, in der Nachrichten für die Übertragung an die Zielwarteschlange gespeichert werden.

Der Warteschlangen-Manager des Diensts akzeptiert an seine Zielwarteschlangen adressierte Nachrichten und speichert sie. Danach sendet der Dienst Leseanforderungen für die Zielwarteschlange, und der Warteschlangen-Manager übermittelt die Nachrichten an den Dienst. Aus diesem Grund sollte das Dienstkonto für die BizTalk-Hostinstanz, die als Host für den Sendeport dient, zum Schreiben in die Übertragungswarteschlange berechtigt sein.

Verwenden Sie einen leeren XPath-Ausdruck für den Empfang einer SOAP-Nachricht mit Zeichendaten im Inhalt des SOAP-Elements „Body“

Der WCF-Sendeport vom Typ „Antwort anfragen“ kann eine WCF-Nachricht als Antwortnachricht empfangen. Um eine BizTalk-Nachricht aus einer eingehenden Antwortnachricht mit Zeichendaten im Inhalt des SOAP-Body-Elements zu erstellen, wie im folgenden Beispiel gezeigt, sollten Sie das Textfeld XPath-Ausdruck auf der Registerkarte Nachricht im Dialogfeld WCF-Adaptertransporteigenschaften leer lassen.

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">
    <s:Header>
      ...
    </s:Header>
    <s:Body>Contoso</s:Body>
</s:Envelope>

Wenn Sie die Option Umschlag oder Text auswählen, erstellt der Adapter die BizTalk-Nachricht nicht aus der eingehenden Nachricht. Die Nachricht wird nicht angehalten, da Nachrichten, die bei der eingehenden SOAP-Marshallingverarbeitung fehlschlagen, nicht angehalten werden. Weitere Informationen zur Verwendung des XPath-Ausdrucks auf der Registerkarte Nachricht finden Sie unter Angeben des Nachrichtentexts für die WCF-Adapter.

Hinweis

Sie können das TraceViewer-Tool (SvcTraceViewer.exe) im Windows SDK verwenden, indem Sie die BTSNTSvc.exe.config.file konfigurieren. Weitere Informationen zum Windows SDK finden Sie unter "Neuerungen im Windows SDK" unter https://go.microsoft.com/fwlink/?LinkId=75219. Weitere Informationen zum TraceViewer-Tool finden Sie unter "TraceViewer Tool (SvcTraceViewer.exe)" unter https://go.microsoft.com/fwlink/?LinkId=75218.

BizTalk Server verwendet keine mehrteiligen Nachrichtentypen und Stammelemente, die benutzerdefinierte SOAP-Header beschreiben

Wenn Sie den Verarbeitungs-Assistenten für BizTalk-WCF-Dienste für Metadaten ausführen, in denen benutzerdefinierte SOAP-Header definiert sind, generiert der Assistent Stammelemente in den generierten Schemas zur Darstellung der benutzerdefinierten SOAP-Header. Außerdem erstellt der Assistent mehrteilige Nachrichtentypen in Orchestrierungen für die benutzerdefinierten SOAP-Header. BizTalk Server BizTalk Server verwendet jedoch keine mehrteiligen Nachrichtentypen und Stammelemente zur Handhabung der benutzerdefinierten SOAP-Header.

Um auf benutzerdefinierte SOAP-Header zuzugreifen, sollten Sie die InboundHeaders-Eigenschaft verwenden. Weitere Informationen zum Empfangen benutzerdefinierter SOAP-Header finden Sie unter SOAP-Header mit veröffentlichten WCF-Diensten. Um benutzerdefinierte SOAP-Header zu verwenden, sollten Sie die OutboundCustomHeaders-Eigenschaft verwenden. Weitere Informationen zum Senden von benutzerdefinierten SOAP-Headern finden Sie unter SOAP-Header mit verbrauchten WCF-Diensten.

Erstellen Sie separate Hostinstanzen für Sendeports, die unterschiedliche Proxyadressen und/oder Proxyanmeldeinformationen verwenden

Um die bestmögliche Leistung für WCF-Sendeadapter zu erzielen, wird empfohlen, separate Hostinstanzen für Sendeports zu erstellen, die unterschiedliche Proxyadressen und/oder Proxyanmeldeinformationen verwenden. Dadurch werden Konflikte bei den Proxyeinstellungen vermieden.

Weitere Informationen

Datei „BTSNTSvc.exe.config“