Blazor 客户端和 WCF

Blazor client-side and WCF

提问人:Pritorian 提问时间:7/22/2019 最后编辑:marc_sPritorian 更新时间:3/16/2021 访问量:4636

问:

我正在尝试使用客户端 Blazor 来显示现有 WCF 服务提供的一些数据。我能够添加连接的服务引用,生成代理。但是当我尝试像这样调用它时:

var client = new SoftConServiceClient();
await client.PingAsync(new PingRequest());

有一堆错误,与MonoTouch有关。通过深入研究 Mono 的代码,在 .NotImplementedExceptionSystem.ServiceModel.DnsEndpointIdentity

我假设现在无法从 Blazor 客户端调用旧版 WCF 服务是否正确?如果不是这种情况,任何人都可以分享有关如何正确操作的指南吗?

奖励问题:如果这是不可能的,那么解决这个问题的最佳选择是什么?修改 WCF 使其成为 REST-ish,还是直接删除它并实现 .net core api 服务?

提前非常感谢!

C# WCF 客户端 Blazor

评论


答:

4赞 Cotta 7/22/2019 #1

WCF 在 .NET Core 中不受开箱即用的支持,但是似乎有一个社区项目正在 .NET Core 中添加对它的支持

https://github.com/CoreWCF/CoreWCF

有关详细信息,请参阅什么取代了 .Net Core 中的 WCF?

1赞 enet 7/22/2019 #2

我假设现在没有办法调用旧版 WCF 是否正确 来自 Blazor 客户端的服务?

是的,你是对的......WCF 在 Blazor 客户端不受支持,将来也不会受支持。Microsoft 已决定从 .Net 5.0 开始停止支持它,并建议改用 Web Api。

根据你在 WCF 上的投入,你可以转向 Web API(也许是 gRPC),或者继续使用 WCF,希望社区移植和支持 WCF 的努力可能会成功。

评论

0赞 Pritorian 7/22/2019
谢谢。我对 SignalR 不是很熟悉,但乍一看,如果考虑删除 WCF,它是否是一种进行双工通信的“现代”方式?
6赞 Abraham Qian 7/23/2019 #3

Core 不能很好地支持 WCF,而不是根本不支持 WCF。特别是在身份验证和安全性方面,例如使用 WS* 绑定创建的服务。但对于使用 BasicHttpBinding 或 Restful 样式服务创建的服务。我们可以在基于 Core 的客户端上正常调用它们,无论是使用客户端代理类还是通道工厂。 请参考以下官方存储库。
https://github.com/dotnet/wcf
我建议你使用 BasicHttpBinding 或使用 Asp.net WebAPI 重新构建你的服务器项目来创建后端服务。
https://learn.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api 如果有什么我可以帮忙的,
请随时告诉我。

2赞 HStewart 3/16/2021 #4

我能够使用 .Net 5 中 SoftCore 的技术来放置 WCF 4.7.2。 我还可以使用 SoftCore 托管示例 Blazor Server