Как настроить клиент WAP Lite на использование службы WCF с помощью wshttpbinding? - PullRequest
1 голос
/ 01 декабря 2011

У меня есть клиент soap lite, использующий сервис 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: ОТЛАДКА: >> "Тип контента: приложение / мыло + 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: мыло = "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 <br> Запрос [\ r] [\ n] "Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: <<" HTTP / 1.1 400 <br> Неверный запрос [\ r] [\ n] "Ср 30 ноября 18:36:14 EST 2011: ОТЛАДКА: << <br> «Длина контента: 0 [\ r] [\ n]» Ср 30 ноября, 18:36:14 EST 2011: ОТЛАДКА: << <br> «Сервер: Microsoft-HTTPAPI / 1.0 [\ r] [\ n]» Ср 30 ноября 18:36:14 EST
2011: ОТЛАДКА: << "Дата: среда, 30 ноября 2011 23:36:14 GMT [\ r] [\ n]" среда, 30 ноября <br> 18:36:14 EST 2011: ОТЛАДКА: << "[\ r] [\ n]" </p>

Там написано 400 Bad Request ... Есть идеи, что происходит?

1 Ответ

2 голосов
/ 01 декабря 2011

Использование WSHttpBinding требует, чтобы клиент говорил на SOAP 1.2, а также понимал ws-адресацию, ws-reliablemessaging, ws-security, ws-policy и ws-policyassertion.Я сомневаюсь, что SOAP :: Lite понимает что-либо из этого, отсюда и обозначение "Lite".BasicHttpBinding довольно простой, как и SOAP :: Lite:)

...