【.net core】.net core 6.0添加WCF服务引用
在 .NET Core 6.0 (.NET 6) 中,调用 WCF 服务 是完全支持的,只要服务使用的是 basicHttpBinding 或类似 HTTP 协议的绑定(如 wsHttpBinding,但不推荐)
.NET Core不支持 net.tcp,只能用http形式。此文档只讲解添加服务引用到项目中形式。
- 确认已经有了WCF项目,并且能够引用
- 在需要引用的项目中,添加服务引用,以vs2022为例:右键项目,选择添加–服务引用
在上图输入uri链接,这个链接可以在WCF项目的配置文件中找到
本地调试中我用的是这个,线上还有待试验,另外是否需要添加http形式也有待试验
然后一直下一步直到成功
之后可以在这里看到已经配置成功
4. 调用WCF的方法
var binding = new BasicHttpBinding();
var endpoint = new EndpointAddress("http://127.0.0.1:8001/myservice");
CustomerServiceDelegateClient client = new CustomerServiceDelegateClient(binding,endpoint);
try
{var res= await client.AddTrackDetailsAsync(item.TbsId, item.TrackDetails.ToArray(), null);return res.AddTrackDetailsResult;
}
finally
{client.Close();
}
- 调试:启动本地的wcf项目,启动项目,正常情况下可以跑到wcf项目
- 问题: 可能调不到wcf项目,是因为.new core不支持tcp协议,所以wcf的配置文件里面要添加basicHttpBinding
<service name="myservice"><endpoint address="" binding="basicHttpBinding" contract="myservice" /><host><baseAddresses><add baseAddress="http://127.0.0.1:8001/myservice" /></baseAddresses></host></service>
已有的不需要删除,只需要添加http的就可以