Konfigurieren dynamischer Sendeports mit WCF-Adapter-Kontexteigenschaften
Sie können dynamische Sendeports für WCF-Adapter konfigurieren. Der URI, die Aktion und die Bindung können anhand einer Eigenschaft für eine eingehende Nachricht bestimmt und dann im Ausdrucks-Shape angegeben werden, wie im folgenden WCF-NetTcp Adapter gezeigt:
MessageOut=MessageIn;
MessageOut(WCF.Action)="http://tempuri.org/IReceiveMessage/ReceiveMessage";
MessageOut(WCF.SecurityMode)="Transport";
MessageOut(WCF.TransportClientCredentialType)="Windows";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.Address)="net.tcp://localhost:8001/netTcp";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-NetTcp";
Der folgende Code zeigt ein Beispiel für das Angeben der WCF-Kontexteigenschaften im Ausdrucks-Shape für einen WCF-Custom-Adapter:
MessageOut=MessageIn;
MessageOut(WCF.BindingType)="customBinding";
MessageOut(WCF.Action)="http://tempuri.org/IReceiveMessage/ReceiveMessage";
MessageOut(WCF.BindingConfiguration)=@"<binding name=""customBinding""><binaryMessageEncoding /><tcpTransport /></binding>";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.Address)="net.tcp://localhost:8001/customNetTcp";
DynamicSendPort(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-Custom";
Berücksichtigen Sie beim Angeben von WCF-Kontexteigenschaften Folgendes:
Bestimmte Adressen können mehreren Adaptern zugeordnet werden. So kann z. B. eine Adresse, die mit http:// oder https:// beginnt, durch den HTTP-Adapter ebenso wie durch den WCF-BasicHttp-, WCF-WsHttp- oder WCF-Custom-Adapter verarbeitet werden. Ein weiteres Beispiel findet sich in den obigen Codebeispielen. In beiden wird eine mit net.tcp:// beginnende Adresse verwendet, aber da im zweiten Codebeispiel eine benutzerdefinierte Bindung verwendet wird, muss für die Verarbeitung der Adresse der WCF-Custom-Adapter verwendet werden. Um den richtigen Adapter zu identifizieren, müssen Sie daher das optionale Feld Microsoft.XLANGs.BaseTypes.TransportType in einem Ausdrucks-Shape mit dem adapter konfigurieren, den Sie verwenden möchten.
Hinweis
Wenn die Adresse mit http:// oder https:// beginnt und Sie nicht das Feld Microsoft.XLANGs.BaseType.TransportType angeben, verwendet die BizTalk-Engine standardmäßig den HTTP-Adapter.
Der WCF. BindingType identifiziert die Bindung anhand des Namens. Folgende Werte sind möglich:
basicHttpBinding
customBinding
netMsmqBinding
netNamedPipeBinding
netTcpBinding
wsFederationHttpBinding
wsHttpBinding
Diese Liste kann noch erweitert werden. So können Sie z. B. eine eigene Bindung wie FtpBinding hinzufügen.
Der WCF. BindingConfiguration gibt die Bindungskonfiguration für den Bindungstyp an. Hierbei werden alle in der Computerkonfigurationsdatei registrierten Bindungen übernommen. Außerdem wird die XML-Konfiguration in demselben Format übernommen, wie es in der Bindungskonfiguration in der WCF-Konfigurationsdatei verwendet wird.
Möglicherweise müssen Sie zusätzliche WCF-Eigenschaften angeben. Sie können WCF im Ausdrucks-Editor eingeben, und das IntelliSense-Feature sollte alle verfügbaren Kontexteigenschaften auflisten. Weitere Informationen zu WCF-Kontexteigenschaften finden Sie unter WCF-Adaptereigenschaftenschema und -Eigenschaften.
Die obigen Beispiele zeigen, wie WCF konfiguriert wird . Aktion mit einer einzelnen Aktion. In Szenarien, in denen mehrere Aktionen zugeordnet werden müssen, unterstützt der WCF-Adapter dies mit dynamischen Sendeports nicht. Sie können einfach die tatsächliche Aktion im WCF festlegen . Aktionskontexteigenschaft , wie oben dargestellt.
Weitere Informationen
Angeben von SOAP-Aktionen für WCF-Sendeadapter
Verwenden von Ausdrücken zum Zuweisen von Werten an dynamische Ports
Portbindungen