SSIS包调用Web Service报错:传出消息身份检查失败问题咨询
根本原因
- SSIS的Web服务调用组件基于WCF框架实现,默认会对服务端返回的端点DNS标识做强制校验。本次SSL证书更新后,81端口的Web服务端点返回的DNS身份声明为
www.abc.sample.com,与客户端请求URL默认生成的预期标识abc.sample.com不匹配,触发校验失败。 - 修改请求URL为
www.abc.sample.com仍未解决的核心原因:一是SSIS的Web服务任务缓存了原有端点的身份配置,修改URL后未同步更新端点身份属性;二是浏览器核验的是443端口的HTTPS证书,与81端口Web服务绑定的证书可能不是同一份,81端口服务实际返回的身份声明和443端口证书的SAN配置不一致。
可行解决方案
方案1:显式指定端点DNS标识(最快生效)
直接按照报错提示修改SSIS包配置即可:
- 打开SSIS包中
SSWS_CallWebService对应的Web服务任务 - 找到Web服务端点配置的
EndpointAddress设置项 - 在身份属性栏手动添加DNS标识为
www.abc.sample.com,无需调整原有请求URL - 保存SSIS包后重新运行验证即可。
方案2:统一服务端端点配置(永久解决)
如果需要避免后续其他客户端调用出现同类问题,可调整服务端配置:
- 核验81端口Web服务绑定的SSL证书,确认是否和443端口证书一致,若不一致则替换为同时包含
abc.sample.com、www.abc.sample.com两个SAN的证书 - 调整Web服务的服务端配置,将返回的端点DNS声明设置为和请求域名匹配,或关闭非必要的端点身份强制校验。
方案3:临时跳过身份校验(仅测试用)
如果仅需临时验证服务可用性,可在SSIS的客户端配置中添加端点身份校验跳过规则,该方案存在安全风险,禁止在生产环境使用。
内容的提问来源于stack exchange,提问作者Fritz
相关产品推荐
相关产品推荐

