Как настроить клиент WAP Lite для использования службы WCF с помощью wshttpbinding?
У меня есть мыльный облегченный клиент, использующий сервис wcf. Я проверил все на basichttpbinding, и он работает нормально. Когда я переключаю привязку на wshttpbinding:
<endpoint binding="wsHttpBinding" bindingConfiguration="customWsBinding"
contract="LogisticServiceLibrary.ILogisticService" />
и изменил версию soap lite для использования 1.2:
$client = SOAP::Lite
->proxy($endpoint)
->soapversion('1.2');
тогда это дает мне ошибку, и ниже вывод от SOAPUI:
Ср 30 Ноя 18:36:14 EST 2011: ОТЛАДКА: >> "POST / LogisticService
HTTP / 1.1 [\ r] [\ n] "Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >>" TE:
deflate, gzip; q = 0.3 [\ r] [\ n] "Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >>
"Соединение: TE, закройте [\ r] [\ n]" Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >>
"Принять: text/xml[\r][\n]" Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >>
"Принять: multipart/*[\r][\n]" Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >>
"Принять: приложение / мыло [\ r] [\ n]" Ср 30 ноября 18:36:14 EST
2011: DEBUG: >> "Пользователь-агент: SOAP::Lite/Perl/0.712[\r][\n]" Ср 30 ноября
18:36:14 EST 2011: ОТЛАДКА: >> "Длина контента: 49496[\r][\n]" Ср 30 ноября
18:36:14 EST 2011:DEBUG:>> "Тип контента: приложение / мыло + xml;
charset = utf-8 [\ r] [\ n] "Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >>
"SOAPAction: http://tempuri.org/ILogisticService/IssueOrder[\r][\n]"
Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >> "Хост: localhost: 8008 [\ r] [\ n]"
Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: >> "[\ r] [\ n]" Ср 30 ноября 18:36:14
EST 2011: отладка:>> " xmlns:namesp1="http://namespaces.soaplite.com/perl"
XMLNS: XSI ="http://www.w3.org/2001/XMLSchema-instance"
XMLNS: soapenc = "http://schemas.xmlsoap.org/soap/encoding/"
XMLNS: XSD ="http://www.w3.org/2001/XMLSchema"
мыло: encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
xmlns: soap = "http://schemas.xmlsoap.org/soap/envelope/"> xmlns = "http://tempuri.org/"> xmlns: i = "http://www.w3.org/2001 / XMLSchema-instance "xmlns =" "
XMLNS: а = "http://schemas.datacontract.org/2004/07/LogisticServiceLibrary"
Ср 30 Ноя 18:36:14 EST 2011:DEBUG:<< "HTTP/1.1 400 Bad
Запрос [\ r] [\ n] "Ср 30 Ноя 18:36:14 EST 2011: ОТЛАДКА:<<" HTTP / 1.1 400
Неверный запрос [\ r] [\ n] "Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА:<<
"Длина контента: 0 [\ r] [\ n]" Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА:<<
"Сервер: Microsoft-HTTPAPI/1.0[\r][\n]" Ср 30 ноября 18:36:14 EST
2011: ОТЛАДКА:<< "Дата: среда, 30 ноября 2011 23:36:14 GMT[\r][\n]" среда, 30 ноября
18:36:14 EST 2011: ОТЛАДКА:<< "[\r][\n]"
Там написано 400 Bad Request... Есть идеи, что происходит?
1 ответ
С помощью WSHttpBinding
требует, чтобы клиент говорил на SOAP 1.2, а также понимал ws-адресацию, ws-reliablemessaging, ws-security, ws-policy и ws-policyassertion. Я сомневаюсь, что SOAP::Lite понимает что-либо из этого, отсюда и обозначение "Lite". BasicHttpBinding
довольно простой, как SOAP::Lite:)