You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

.NET Core 2.1 RC1添加WCF服务引用遇未知错误求助

解决.NET Core 2.1 RC1中添加WCF服务引用的元数据错误

针对你遇到的「调用服务元数据组件时发生未知错误,无法生成服务引用」问题,结合你提到的仅启用Transport安全、无消息安全的配置,以及操作日志,我整理了几个针对性的解决方案:

1. 确认证书信任状态

.NET Core的WCF工具链对证书的信任校验比Framework更严格,如果你的服务用的是自签名证书或者未被本地信任的证书,很可能导致元数据读取失败:

  • 打开MMC控制台,添加「证书」管理单元,选择「本地计算机」
  • 找到服务使用的证书,右键选择「所有任务」→「导入」,将其导入到「受信任的根证书颁发机构」存储中
  • 重新尝试添加服务引用

2. 手动执行svcutil命令并指定安全参数

从日志可以看到,可视化工具是通过临时项目调用svcutil的,可能没有正确传递Transport安全的相关参数。你可以手动执行命令来绕过这个问题:

dotnet svcutil https://your-service-endpoint?wsdl --securityMode Transport --trustServerCertificate
  • --securityMode Transport明确指定使用传输层安全
  • --trustServerCertificate参数用于跳过证书链验证(仅适合测试环境,生产环境请确保证书完全可信)

3. 升级到.NET Core 2.1正式版

2.1 RC1作为预发布版本,存在不少WCF工具链的已知bug,其中就包括元数据生成时的兼容性问题。升级到.NET Core 2.1正式版后,这类问题大多已经被官方修复,这是最稳妥的解决方案。

4. 验证服务元数据的可访问性

先直接在浏览器中访问服务的WSDL地址(比如https://your-service-url?wsdl):

  • 如果浏览器提示证书错误,说明证书信任问题确实是根源,先解决证书信任
  • 如果能正常加载WSDL,再尝试用手动svcutil命令生成代码,排除可视化工具的问题

内容的提问来源于stack exchange,提问作者Craig S

火山引擎 最新活动