提问人:Pritorian 提问时间:7/22/2019 最后编辑:marc_sPritorian 更新时间:3/16/2021 访问量:4636
Blazor 客户端和 WCF
Blazor client-side and WCF
问:
我正在尝试使用客户端 Blazor 来显示现有 WCF 服务提供的一些数据。我能够添加连接的服务引用,生成代理。但是当我尝试像这样调用它时:
var client = new SoftConServiceClient();
await client.PingAsync(new PingRequest());
有一堆错误,与MonoTouch有关。通过深入研究 Mono 的代码,在 .NotImplementedException
System.ServiceModel.DnsEndpointIdentity
我假设现在无法从 Blazor 客户端调用旧版 WCF 服务是否正确?如果不是这种情况,任何人都可以分享有关如何正确操作的指南吗?
奖励问题:如果这是不可能的,那么解决这个问题的最佳选择是什么?修改 WCF 使其成为 REST-ish,还是直接删除它并实现 .net core api 服务?
提前非常感谢!
答:
WCF 在 .NET Core 中不受开箱即用的支持,但是似乎有一个社区项目正在 .NET Core 中添加对它的支持
https://github.com/CoreWCF/CoreWCF
有关详细信息,请参阅什么取代了 .Net Core 中的 WCF?
我假设现在没有办法调用旧版 WCF 是否正确 来自 Blazor 客户端的服务?
是的,你是对的......WCF 在 Blazor 客户端不受支持,将来也不会受支持。Microsoft 已决定从 .Net 5.0 开始停止支持它,并建议改用 Web Api。
根据你在 WCF 上的投入,你可以转向 Web API(也许是 gRPC),或者继续使用 WCF,希望社区移植和支持 WCF 的努力可能会成功。
评论
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 如果有什么我可以帮忙的,
请随时告诉我。
我能够使用 .Net 5 中 SoftCore 的技术来放置 WCF 4.7.2。 我还可以使用 SoftCore 托管示例 Blazor Server。
评论