В этом посте рассматривается последнее препятствие на пути к выполнению моей задачи по связи с маршрутизатором Cisco через агента управления веб-сервисами (WSMA), как описано здесь и здесь .Вам не придется читать эти посты, чтобы понять мой текущий вопрос.
Проблема заключается в следующем: у меня есть контракты на сервисы сборки и сообщений, соответствующие веб-сервисам маршрутизатора, и я настроил базовую HttpBinding и конечную точку.И используя фабрику каналов, я почти, но не совсем, успешно обмениваюсь данными с маршрутизатором.
В ответ я получаю сообщение об ошибке SOAP, утверждая, что «отсутствует ожидаемый тег или последовательность XML».Используя трассировку WCF, fiddler и отладку на маршрутизаторе и вручную отправляя сообщения по HTTP, я наконец выяснил, что происходит.
Агент WSMA на маршрутизаторе ожидает полезную нагрузку сообщения SOAP в HTTPзапрос на включение декларации XML.И WCF не отправляет один. Так просто.
Поэтому мой вопрос: Как я могу сделать WCF, используя basicHttpBinding, включить объявление XML в сообщение?
Для справки, моя конфигурация привязки выглядит следующим образом:
<basicHttpBinding>
<binding name="BasicHttpBinding_IWsmaService" messageEncoding="Text" textEncoding="UTF-8" allowCookies="false">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Basic" proxyCredentialType="None" realm="level_15" />
</security>
</binding>
</basicHttpBinding>
(на случай, если вам интересно - да, я знаю, что отправляю учетные данные в виде открытого текста по незашифрованному транспорту)