我目前正在满足为大型映射请求提供路由的需求,该请求最多可以包含 30 个查询字符串项。
在开发我的 BizTalk 项目时,我已经成功地使用 WCF-WebHttp 类型接受带有少量查询字符串的 http 请求,提升属性并将消息通过订阅发送端口发送到适当的系统。
但是,如果查询字符串的数量增加到 URL 地址超过 256 个字符的程度,则会出现以下错误:
提升属性的值不能超过 256 个字符。属性“To”命名空间“http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties”。
参数名称:obj
这是在接收管道之前抛出的。我知道提升的属性不能超过 256 个字符,但是在这种情况下我被卡住了,因为我(似乎)无法控制有关上述属性的属性提升。
是否可以将 BizTalk 应用程序配置为不提升“To”属性?我想它的推广是有原因的,所以它可能不是一个可行的解决方案 - 如果它可以做到的话。
考虑到这一点,是否还有其他方法可以创建可以处理具有大量查询字符串的请求的接收位置?我查看了 WCF-Custom,但看不到任何明显的东西。
最佳答案
您很可能正在使用 GET 方法来公开服务。当您有很多参数时,您应该考虑使用 POST 方法。您可以在 Body 中将包含所有详细信息的 json/xml 消息发送到一个小 url。如果您决定使用 json,您可以使用 JSON 管道组件将 json 转换为 XML,然后根据需要进行路由。
关于wcf - BizTalk 2013 - 通过 WCF-WebHttp 公开 REST 端点时 URL 的 256 个字符限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42073816/