BizTalk 2010 вызывает односторонний (огонь и забыть) сервис и подтверждение - PullRequest
1 голос
/ 20 января 2011

Контекст: BizTalk 2010 пытается вызвать односторонний (запустить и забыть) сервис PeopleSoft, который не возвращает ответ. Я подтвердил, что BizTalk 2010 не поддерживает односторонние сервисы по своему дизайну. Невозможно вызвать одностороннюю службу Peoplesoft с WCF-адаптером из 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

Однако, когда я смотрю на xml, возвращенный из службы One Way WCF, опубликованной BizTalk 2010, я вижу это

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 ]

2 голосов
/ 20 января 2011

Если веб-служба не возвращает ответ, она должна вернуть HTTP 204 - Нет содержимого.Я еще не пробовал это в WCF, но HTTP соблюдает код возврата без содержимого.Что касается службы BizTalk WCF ... не знаю, почему она не использует 204. Но поскольку она использует 200, ей нужно что-то отправить.

1 голос
/ 21 января 2011

Похоже, что BizTalk 2010 действительно должен иметь NON-NULL-ответ для возможности вызова службы.Спасибо Бен за подтверждение.

Подробнее здесь .

0 голосов
/ 21 января 2011

Какова природа сообщения, которое вы отправляете? Теоретически можно отправить одностороннее HTTP-сообщение и сопоставить его с отдельным портом HTTP-ответа.

...