勇哥注:
wcf主要用于.net framework中。
这里谈一下如果想在.net core中应用,该怎么做?
目前的wcf的hosting端只能用在.net framework里,.net core用不了。
而client端,在两边都是可以使用的。
在.net framework里,wcf功能主要引用System.ServiceMode。
在.net Core里,引用的是System.ServiceModel.xxx等一系列包(见图2)
但是.net Core中,缺少System.ServiceModel.web包,所以你无法使用wcf的REST。
所以即使是wcf的客户端支持,在.net core都不完整。
如果想在.net Core下使用wcf的hosting端功能,只能用第三方的支持,那就是CoreWcf,下面是一些相关的文摘:
升级 WCF 服务器端项目以在 .NET 6 上使用 CoreWCF
https://learn.microsoft.com/zh-cn/dotnet/core/porting/upgrade-assistant-wcf
CoreWCF 支持策略
https://dotnet.microsoft.com/zh-cn/platform/support/policy/corewcf
探索CoreWCF:下一代.NET服务框架
https://blog.csdn.net/gitblog_00099/article/details/137003923
先放上基本程序的项目清单。
(图1)
我们知道.net core的诞生初衷是跨平台。由于wcf包含了太多only windows的技术,跨平台就带来了复杂性。
这可能也是微软为啥在.net core中放弃了wcf的重要原因之一吧。

