无负载的信封模式:超时
我有一个请求响应端口,一个接收位置包含 WCF-BasicHttp 适配器。接收位置附加了一个自定义管道,我在其中放置了一个 XML 反汇编器,其中包含一个信封模式。该信封模式是一个包含一些请求元素和一个有效负载任何元素的请求。 XML 反汇编器提取此有效负载并将其发布到 MessageBox 上。
现在我的问题是:
当我在没有有效负载内容的情况下发出请求时,我会超时(来自 WCF,默认为 1 分钟)。当我输入非 xml 内容(如“aaaaa”)时,也会出现超时。
在这两种情况下 Biztalk 中会发生什么(我不明白为什么在这两种情况下都会发生超时)....?
I have a request-response port a receive location holding WCF-BasicHttp adapter. The receive location has a custom pipeline attached where I have put an XML Disassembler in it hold an envelope schema. That envelope schema is a request holding some request elements and a payload any element. The XML disassembler extracts this payload and publishes it onto the MessageBox.
Now my question:
When I put a request in without a payload content I get a timeout (from WCF, defaulted 1 minute). Also I get a timeout when I put in a non-xml content (like 'aaaaa').
What happens in Biztalk in both scenario's (I don't get the point of why timeouts occur in both scenario's).... ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您能提供更多信息吗?
例如
您是否发布了接收请求并创建响应的编排?
您是否使用隔离主机,或者是否直接在 BizTalk 主机进程上创建了接收位置?
我不确定这是否适用,但如果您将编排发布为 WCF 服务(不考虑任何封装或管道处理),一旦创建接收位置,任何消息都可以发送到满足某些信封条件的位置(默认为 SOAP 消息信封,但您可以在接收位置消息设置中覆盖此设置)。然后,一个或多个编排可以接收此消息,并且发送回端口响应的任何消息都将被发送回调用者。
因此,如果您将空数据或不符合要求的数据发布到接收位置,编排将根本不会收到消息,并且可能会被挂起。
因此,您的 WCF 客户端将不会收到回复,因此最终会超时。
Could you possibly provide more info please?
e.g.
Did you publish an orchestration which receives the request and creates the response?
Are you using the Isolated hosts, or have you created a receive location directly on a BizTalk host process?
I'm not sure if this is applicable, but if you publish an orchestration as a WCF service(without taking any enveloping or pipeline processing into account), once the receive location is created, any message can be sent to the location provided that it meets some envelope criteria (the default is the SOAP message envelope, but you can override this in the receive location message settings). One or more orchestrations can then receive this message, and any message(s) sent back to the response of the port will be sent back to the caller.
So if you publish empty or non-conformant data to the receive location, the orchestration won't receive the message at all and it is likely to be suspended instead.
As a result, your WCF client won't receive a reply, and hence will eventually timeout.