Blazor 客户端和 WCF

Pri*_*ian 5 c# wcf client-side blazor

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

var client = new SoftConServiceClient();
await client.PingAsync(new PingRequest());
Run Code Online (Sandbox Code Playgroud)

有很多与 MonoTouch 相关的错误。通过深入研究 Mono 的代码,可以NotImplementedException发现System.ServiceModel.DnsEndpointIdentity.

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

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

预先非常感谢!

Abr*_*ian 6

Core 对 WCF 的支持不是很好,而是根本不支持。特别是在身份验证和安全性方面,例如使用 WS* 绑定创建的服务。但对于使用 BasicHttpBinding 或 Restful 风格的服务创建的服务。我们可以在基于 Core 的客户端上正常调用它们,无论是使用客户端代理类还是 Channel Factory。请参考下面的官方存储库。
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
如果有请随时告诉我有什么我可以帮忙的。