Teilen über


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