2009-03-05 5 views
0

Ich versuche, eine Nachricht an den WCF-WSHttp-Adapter mit einem dynamischen senden Port aus einer Orchestrierung zu senden, aber BizTalk scheint immer wieder zurück zu dem HTTP Adapter.BizTalk Dynamic WCF-WSHttp Sende-Port auf Http Adapter

Nach der Dokumentation, die ich habe in der Lage zu finden, soll ich brauche nur die Transportart von meiner Ausdrucksform zu setzen BizTalk zu Verwendung des WCF-WSHttp Adapter zu bekommen, und ich bin, aber es immer noch scheint zu sein. Im Folgenden ein Beispiel für meine Ausdrucksform ist, die die Eigenschaften der Einstellung (wie Sie sehen können, habe ich versucht, sowohl Microsoft.XLANGs.BaseTypes.TransportType und BTS.OutboundTransportType):

Body(BTS.OutboundTransportType) = "WCF-WSHttp"; 

SendMessagePort(Microsoft.XLANGs.BaseTypes.Address) = 
System.String.Format("{0}/Accept{1}", "http://myserver/myservice/ 
myservice.svc/Accept{0}", messageInfo.MessageType); 
SendMessagePort(Microsoft.XLANGs.BaseTypes.TransportType) = "WCF- 
WSHttp"; 

Antwort

0

Ich endete mein Problem lösen, bin aber immer noch nicht sicher über die Gründe für das Verhalten, das ich sah.

Die in der Frage erwähnte Ausdrucksform befand sich innerhalb eines Atomic Scope. Sobald die Orchestrierung den Bereich mit der Expression-Form verlassen hat, wurde der Transporttyp auf seinen ursprünglichen Wert zurückgesetzt. Durch das Verschieben des Ausdrucks aus dem atomaren Gültigkeitsbereich wurde das Problem gelöst, da der TransportType korrekt festgelegt wurde.

0

Wahrscheinlich Craig sind: -)

Wenn Sie einen dynamischen Sendeport verwenden, verwendet BizTalk den "schema" -Teil der URL, um zu entscheiden, welcher Adapter verwendet werden soll.

Wenn Ihre URL mit "Http: //" oder "Https: //" beginnt, verwendet BizTalk immer den HTTP-Adapter. Ähnlich URLs beginnend mit ftp: // wird den FTP-Adapter verwenden. Dies funktioniert auch für benutzerdefinierte Adapter - wenn Sie die Adapterkonfiguration installieren, registrieren Sie den zu verwendenden Moniker; Zum Beispiel - der Open-Source-Task für geplante Aufgaben verwendet Zeitplan: // (glaube ich).

Die Verwendung dynamischer Sende-Ports mit WCF ist aufgrund der verschiedenen erforderlichen Konfigurationen etwas komplizierter als bei den meisten anderen Adaptern, aber Sie finden detaillierte Erklärungen here, scrollen Sie ungefähr halb unten zum Abschnitt "Dynamic Send Ports".

+0

Yossi - Danke für die Antwort. Entschuldigung, ich habe vergessen, diese Frage zu aktualisieren. Ich habe mein Problem gelöst, aber ich bin mir immer noch nicht sicher, WARUM es passiert ist. Meine Ausdrucksform, die den TransportType auf dem Port festlegte, befand sich in einem atomaren Bereich. Bewegen Sie es außerhalb des Umfangs fixierte Dinge. –