I am currently working on a requirement to provide routing for a large mapping request, which can have up to 30 querystring items.
On developing my BizTalk project, I have been successful in accepting a http request with a small number of querystrings using the WCF-WebHttp type, promoting the properties and sending the message to the appropriate system via a subscribing send port.
However, if the number of querystrings increases to the point where the URL address exceeds 256 characters, I get the following error:
The value of a promoted property cannot exceed 256 characters. Property "To" Namespace "http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties". Parameter name: obj
This is thrown before the receive pipeline. I understand that promoted properties cannot exceed 256 characters, however in this instance I am stuck as I (seemingly) have no control over the property promotion regarding the above property.
Is it possible to configure the BizTalk application not to promote the "To" property? I guess that it is promoted for a reason, so it may not be a feasible solution to do this - if it can be done at all.
With that in mind, is there any other way of creating a receive location that can handle requests with a large amount of querystrings? I had a look at the WCF-Custom, but I couldn't see anything obvious.
Most likely you are using GET method to expose the service. You should look at using POST method when you have lots of parameters. You can send a json/xml message in Body with all details to a small url. In case you decide to use json, you can use JSON pipeline component to convert the json to XML and then do your routing as required.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With