BizTalk 2010调用单向(fire and forget)服务和确认

时间:2011-01-20 15:59:35

标签: wcf biztalk peoplesoft

上下文: BizTalk 2010尝试调用单向(触发并忘记)不返回响应的PeopleSoft服务。我已经验证BizTalk 2010不支持单向服务设计。 Unable to call one way Peoplesoft service with WCF-Adapter from BizTalk 2010

PeopleSoft团队向我展示了他们的异步服务返回以下Http状态和标头。

HTTP/1.1 200 OK
Date: Thu, 20 Jan 2011 15:31:37 GMT
Content-Length: 0
Content-Type: text/xml; charset=UTF-8
TransactionID: <some GUID>
X-Powered-By: Servlet/2.5 JSP/2.1

但是,当我查看BizTalk 2010发布的One Way WCF服务返回的xml时,我看到了这个

HTTP/1.1 200 OK
Content-Length: 86
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Thu, 20 Jan 2011 15:34:32 GMT

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body/></s:Envelope>

请注意空SOAP消息。

因此,BizTalk 2010需要具有NON-NULL响应才能调用服务。 PeopleSoft服务发回上面的HTTP状态代码不被认为是BizTalk的确认。

这是对的吗?

感谢。

3 个答案:

答案 0 :(得分:2)

如果Web服务未返回响应,则需要返回HTTP 204 - No Content。我还没有在WCF中尝试过这个,但HTTP尊重无内容返回代码。至于BizTalk WCF服务......不知道为什么它没有使用204.但由于它使用200,它需要发送一些东西。

答案 1 :(得分:1)

看起来BizTalk 2010确实需要一个NON-NULL响应才能调用服务。 感谢Ben的确认。

详见here

答案 2 :(得分:0)

您发送的邮件的性质是什么?理论上,您可以发送单向HTTP消息并在单独的HTTP响应端口上进行关联。