Powershell: Ошибка использования служб WCF с кодировкой сообщений MTOM

В настоящее время я изучаю возможности PowerShell, но я столкнулся с проблемой, которую не смог решить. Будем признательны за любые быстрые советы =)

Моя цель: Вызов методов из службы WCF (настроенной с кодировкой сообщений MTOM) из powershell v2.0 (надеюсь, с использованием командлета new-webserviceproxy)

Моя проблема: командлет new-webserviceproxy не может правильно проанализировать ответ службы, если для кодировки сообщения установлено значение Mtom. Я получаю следующую ошибку:

PowerShell :

$ proxyObject = New-WebServiceProxy -URI " http://myserver.com/AccessService.svc?wsdl "
$ proxyObject.TestWebServiceConnection ()

Исключение при вызове TestWebServiceConnection с аргументом (-ами) «0»: «Клиент обнаружил тип содержимого ответа 'multipart / related; type =" application / xop + xml "; start =" & lthttp: //tempuri.org/ 0 & gt "; Border =" uuid:
4001d529-32b9-4560-9f4b-550c35c67b03 + id = 4 "; start-info =" text / xml "', но ожидалось' text / xml '.
Запрос не выполнен, появляется сообщение об ошибке:
-
- uuid: 4001d529-32b9-4560-9f4b-550c35c67b03 + id = 4
Content-ID: & lthttp: //tempuri.org/0>
Кодирование передачи содержимого: 8 бит
Content-Type: application / xop + xml; charset = utf-8; type = "text / xml"
& lts: Envelope xmlns: s = "http://schemas.xmlsoap.org/soap/envelope/" & gt
& lts: Body & gt
& ltTestWebServiceConnectionResponse xmlns = "http://myserver.com/" & gt
& ltTestWebServiceConnectionResult & gtsuccess & lt / TestWebServiceConnectionResult & gt
& lt / TestWebServiceConnectionResponse & gt
& lt / s: Body & gt
& lt / s: конверт & gt
- uuid: 4001d529-32b9-4560-9f4b-550c35c67b03 + id = 4--
-. "
В строке: 1 символ: 38
+ $ proxyObject.TestWebServiceConnection & lt & lt & lt & lt () & gt & gt error.txt
+ CategoryInfo: NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId: DotNetMethodException

Примечание Я могу использовать службу WCF через других клиентов и даже через инструмент wcfclient, предоставляемый Microsoft. Вы можете видеть, что TestWebServiceConnectionResult вернул успех , но не похоже, что прокси-объект смог проанализировать ответ.

Поведение :

& ltserviceBehaviors & gt
& ltbehavior name = "MyServiceBehavior" & gt
& ltserviceThrottling maxConcurrentCalls = "100" maxConcurrentSessions = "100" / & gt
& ltserviceMetadata httpGetEnabled = "true" httpsGetEnabled = "false" / & gt
& ltserviceDebug includeExceptionDetailInFaults = "false" / & gt
& lt / behavior & gt
& lt / serviceBehaviors & gt

Привязка (я исключил значения тайм-аута / квоту читателей и размеры сообщений, поскольку перестановки их значений не имеют отношения к моей проблеме):


& ltbasicHttpBinding & gt
& ltbinding name = "basicHttpEndpointBinding" messageEncoding = "Mtom" & gt
& ltsecurity mode = "Нет" & gt
& lttransport clientCredentialType = "Нет" / & gt
& lt / security & gt
& lt / basicHttpBinding & gt

Служба

& ltservice behaviorConfiguration = "MyServiceBehavior" name = "MyService.AccessService" & gt
& ltendpoint address = "" binding = "basicHttpBinding" bindingConfiguration = "basicHttpEndpointBinding" name = "basicHttpEndpointAccessService" bindingNamespace = "http://myserver.com/" contract = "MyService.IAccessService" / & gt
& ltendpoint address = "mex" binding = "basicHttpBinding" bindingConfiguration = "basicHttpEndpointBinding" name = "mexEndpointAccess" contract = "IMetadataExchange" / & gt
& lt / service & gt

10
задан Kiquenet 24 March 2015 в 09:12
поделиться