The WCF BindingBox is here!
What is it?
BindingBox is an online application that converts WCF bindings to a customBinding configuration.
Why we need it?
WCF bindings capture a general use case and allow us to customize it. For example, basicHttpBinding is good for interoperability with older soap stacks while WSHttpBinding fits WS-* based communication. However, there are cases where we can not use the out of the box bindings. For example:
- We want to further customize the binding behind what it exposes. For example, we might want WSHttpBinding not to send a timestamp (for interoperability reasons) but this is not a built in option.
- We have a special use case which is not captured by any of the out-of-the-box bindings. For example, we want to use binary encoding over http.
In such cases we need to convert our binding into a custom binding. This is not a trivial process. In particular, some security settings can be very frustrating to translate.
For this reason I have written the WCF BindingBox. This is an online application which automatically converts any binding to a customBinding.
How to use it - Tutorial
Step 1 - Get your current binding
Just open your web.config or app.config file and navigate to the "<bindings>" element. Then copy its content to the clipboard. Be sure to copy the wrapping "<bindings>" element as well:
Step 2 - Convert your binding
Just navigate to the BindingBox and paste your binding from step 1. Then click on the "Convert to CustomBinding" button and copy to the clipboard your new binding. It may look like this:
Step 3 - Use the custom binding
Basically, you now just need to use the BindingBox result as your binding configuration.
In practice you would do it in one of the following ways: - In your .config file manually configure your endpoint to use a custom binding and set its configuration.
- Use the WCF configuration editor to configure your endpoint to use a CustomBinding. then in your .config override the default customBinding configuraiton with the BindingBox result.
Currently supported bindings
BindingBox currently supports these bindings: - WSHttpBinding
- WS2007HttpBinding
- BasicHttpBinding
More to follow
Stay tuned for these: - NetTcpBinding
- NetNamedPipeBinding
- WSFederationHttpBinding
- WS2007FederationHttpBinding
Known issues - DefaultAlgorithmSuite is not converted
- ReaderQuotas are not converted
basicHttpBinding
customBinding