Die aktuelle Preview von BizTalk-Services scheint Bridges unter .NET 3.x auszuführen. Zu dieser Erkenntnis gelangt man, wenn man zum Beispiel via Relaying einen Service anstoßen möchte und den AC-Schlüssel für den Zugriff auf den Service Bus über ein transportClientEndpointBehavior definiert. Handelt es sich beim übergeordneten endpointBehavior um einen Standard-EndpointBehavior (einen endpointBehavior ohne Namen) so wird dieser nicht auf den konfigurierten Endpunkt, welcher auf den Relaying-Service verweist, angewandt. Grund dafür ist, dass es vor .NET 4 diese Semantik für das Definieren von Standard-Elementen noch nicht gegeben hat. Die Lösung ist, wenn man es erst mal weiß, ganz einfach: Man weist das endpointBehavior explizit zu. Nachfolgend ein Beispiel dafür:
<client>
<!-- The clear below makes sure any client endpoints defined in machine.config dont get added-->
<clear />
<endpoint
name="TwoWayRelayServiceReference1"
address="https://steyer-servicebus.servicebus.windows.net/OrderServiceB"
binding="basicHttpRelayBinding"
bindingConfiguration="basicHttpRelayBinding1"
behaviorConfiguration="MyBehavior"
contract="System.ServiceModel.Routing.IRequestReplyRouter"/>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="MyBehavior">
<transportClientEndpointBehavior>
<tokenProvider>
<sharedSecret issuerName="owner" issuerSecret="o/3kNWWl9AeMpbwYR3OLQpbQcshi40Nf4XOC5zlqz7Q="/>
</tokenProvider>
</transportClientEndpointBehavior>
</behavior>
</endpointBehaviors>
</behaviors>