You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET Core中调用.NET Framework开发的WCF服务报错如何解决

问题修复方案

方案1:直接在.NET Core项目中调用WCF服务(推荐)

  • 首先修复代码中的异步调用错误:你的NameSake方法已经标记为async,但调用EstopAsync时未加await关键字,这会导致异常无法被当前catch捕获,同时返回未完成的Task对象。将对应行修改为:
var res = await _motionSimulatorClient.EstopAsync();
  • 确认已安装正确的NuGet依赖:必须安装System.ServiceModel.NetTcp和System.ServiceModel.Primitives两个包,版本需和你项目使用的.NET Core/.NET SDK版本匹配。
  • 修复服务引用生成警告:如果生成引用时出现警告,优先确认WCF服务端已开启元数据发布,也可以改用服务端的http元数据地址生成引用,避免net.tcp元数据获取异常。
  • 生成同步方法(可选):使用Microsoft WCF Web Service Reference Provider生成服务引用时,在配置界面勾选生成同步操作选项,即可生成同步调用方法,不需要强制使用异步接口。
  • 检查网络连通性:先在开发机执行Test-NetConnection 192.168.184.33 -Port 8458验证端口连通性,同时确认虚拟机防火墙开放了8458端口的入站规则,WCF服务端已正确启用net.tcp协议支持。
  • 验证绑定配置一致性:确认WCF服务端的NetTcpBinding安全模式也设置为SecurityMode.None,客户端和服务端绑定配置不一致会直接导致连接失败。

方案2:.NET Framework代理dll引用问题说明

你采用的.NET Framework项目生成代理dll供.NET Core引用的方案本身不可行,.NET Framework的WCF实现基于专属的System.ServiceModel类库,和.NET Core的WCF客户端实现完全不兼容,跨框架引用必然会报运行时错误,不建议使用该方案。


内容的提问来源于stack exchange,提问作者Harsh Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:12:02