web-services - 如何调用安全的 Web 服务
问题描述
我收到消息“System.Net.WebException:HTTP 请求被客户端身份验证方案‘匿名’禁止。” 尝试使用 BizTalk 2013在“ https://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php ”调用 Web 服务时。
我直接从站点导入了 wsdl,创建了模式和绑定以进行调用。发送端口设置为 WCF-BasicHttp,安全模式:传输,传输客户端凭据类型:无。我可以使用 BizTalk 服务器中的 SOAP-UI 调用该服务,但不提供任何形式的身份验证。
已阅读大量帖子和文档,但到目前为止我所做的一切都没有帮助。我确定我错过了一些东西;只是不确定那是什么东西!
解决方案
从 WSDL 的外观来看:<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
它是一个 RPC 类型的 Web 服务
就像文档中指定的那样:'WCF 适配器不支持使用远程过程调用 (RPC) 样式的 Web 服务,因为 RPC 样式的 Web 服务中的消息部分是指消息类型而不是 WCF 适配器使用元素的消息元素对于消息部分。我们建议您通过添加 Web 引用向导添加 RPC 样式的 Web 服务,以便在 BizTalk 项目中使用 Web 服务。
推荐阅读
- php - Laravel 关联其他表
- sql - 在创建主键和非主键的哈希值后比较两个 Hive 表,并列出具有更新、插入和删除的唯一 id
- javascript - 在反应中动态加载父母和孩子
- r - 如何使这些结果相加以满足使用数据表方法的 ifelse 函数的条件
- httpurlconnection - “sun.security.validator.ValidatorException:PKIX 路径构建失败:异常:无法找到请求目标的有效证书路径”
- reactjs - 如何在循环中设置状态?
- mysql - 在不同的表中有一个“ORDER BY”列会更好吗?
- python - 为什么我的精灵在 pygame 中不能正确移动?
- message-queue - 替换消息队列中的项目
- javascript - 根据传单js缩放级别添加一个类