ESB Toolkit 2.0 EndPointConfig (HTTPS with WCF-BasicHttp and the ESB Toolkit 2.0)
Posted
by Andy Morrison
on Geeks with Blogs
See other posts from Geeks with Blogs
or by Andy Morrison
Published on Thu, 11 Mar 2010 15:36:36 GMT
Indexed on
2010/03/11
17:20 UTC
Read the original article
Hit count: 811
Earlier this week I had an ESB endpoint (Off-Ramp in ESB parlance) that I was sending to over http using WCF-BasicHttp. I needed to switch the protocol to https: which I did by changing my UDDI Binding over to https: No problem from a management perspective; however, when I tried to run the process I saw this exception:
Event Type: Error
Event Source: BizTalk Server 2009
Event Category: BizTalk Server 2009
Event ID: 5754
Date: 3/10/2010
Time: 2:58:23 PM
User: N/A
Computer: XXXXXXXXX
Description:
A message sent to adapter "WCF-BasicHttp" on send port "SPDynamic.XXX.SR" with URI "https://XXXXXXXXX.com/XXXXXXX/whatever.asmx" is suspended.
Error details: System.ArgumentException: The provided URI scheme 'https' is invalid; expected 'http'.
Parameter name: via
at System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
at System.ServiceModel.Channels.HttpChannelFactory.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
at System.ServiceModel.Channels.HttpChannelFactory.OnCreateChannel(EndpointAddress remoteAddress, Uri via)
at System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
at System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via)
at System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)
at System.ServiceModel.ChannelFactory`1.CreateChannel()
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.GetChannel[TChannel](IBaseMessage bizTalkMessage, ChannelFactory`1& cachedFactory)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendMessage(IBaseMessage bizTalkMessage)
MessageId: {1170F4ED-550F-4F7E-B0E0-1EE92A25AB10}
InstanceID: {1640C6C6-CA9C-4746-AEB0-584FDF7BB61E}
I knew from a previous experience that I likely needed to set the SecurityMode setting for my Send Port. But how do you do this for a Dynamic port (which I was using since this is an ESB solution)?
Within the UDDI portal you have to add an additional Instance Info to your Binding named:
EndPointConfig
Then you have to set its value to:
SecurityMode=Transport
Like this:
Here’s the dialog that popped up for WCF-BasicHttp:
I simply set the SecurityMode to Transport. Please note that you will get different properties within the window depending on the Transport Name you select for the resolver.
When you are done with your settings, export the itinerary to disk and find that xml; then find that resolver’s xml within that file. It will look like endpointConfig=SecurityMode=Transport in this case. Note that if you set additional properties you will have additional key-value pairs after endpointConfig=
Copy that string and paste it into the UDDI portal for you Binding’s EndPointConfig Instance Info value.
© Geeks with Blogs or respective owner