上下文: 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的确认。
这是对的吗?
感谢。
答案 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响应端口上进行关联。