【发布时间】:2010-09-10 09:00:57
【问题描述】:
这篇文章是关于完成我通过 Web 服务管理代理 (WSMA) 与 Cisco 路由器通信任务的最后一个障碍,如 here 和 here 所述。不过,您不必阅读这些帖子即可理解我当前的问题。
问题是这样的:我已经构建了服务和消息契约来匹配路由器的 Web 服务,并配置了一个 basicHttpBinding 和一个端点。并且使用通道工厂,我现在几乎(但不完全)与路由器成功通信。
作为回报,我不断收到 SOAP 错误,指出“缺少预期的 XML 标记或序列”。在路由器上使用 WCF 跟踪、提琴手和调试,并通过 HTTP 手动发布消息,我终于弄清楚了发生了什么。
路由器上的 WSMA 代理期望 HTTP 请求中的 SOAP 消息负载包含 XML 声明。而且 WCF 没有发送。 就这么简单。
所以我的问题是:如何使用 basicHttpBinding 使 WCF 在消息中包含 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>
(如果您想知道 - 是的,我知道我正在通过未加密的传输方式发送明文凭据)
【问题讨论】:
-
我已关注您关于 Cisco WSMA 和 .NET 的所有主题。你能在某个地方提供一个完整的样本吗?我遇到了同样的问题,并希望将其自动化。
标签: wcf web-services wsma