2
votes

Blazor côté client et WCF

J'essaie d'utiliser Blazor côté client pour afficher des données, fournies par le service WCF existant. J'ai pu ajouter une référence de service connecté, le proxy est généré. Mais quand j'essaye de l'invoquer comme ceci:

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

il y a un tas d'erreurs, liées à MonoTouch. En creusant dans le code de Mono, il y a une NotImplementedException explicite dans le constructeur du System.ServiceModel.DnsEndpointIdentity.

Ai-je raison de supposer qu'il n'y a aucun moyen maintenant d'appeler le service WCF hérité du côté client de Blazor? Si ce n'est pas le cas, quelqu'un peut-il partager un guide sur la façon de le faire correctement?

Question bonus: si ce n'est pas possible, quelle serait la meilleure option pour aborder cela? Modifier WCF pour devenir REST-ish ou simplement le supprimer et implémenter le service api de base .net?

Merci beaucoup d'avance!


0 commentaires

3 Réponses :


2
votes

WCF n'est pas pris en charge dans .NET Core par défaut, mais il semble qu'il y ait un projet communautaire qui travaille sur l'ajout de sa prise en charge dans .NET Core

https://github.com/CoreWCF/CoreWCF

Voir Qu'est-ce qui remplace WCF dans .Net Core? pour plus d'informations.


0 commentaires

1
votes

Ai-je raison de supposer qu'il n'y a aucun moyen maintenant d'appeler l'ancienne WCF service du côté client de Blazor?

Oui, vous avez raison ... WCF n'est pas pris en charge dans Blazor côté client, et il ne le sera plus à l'avenir. Microsoft a décidé de cesser de le prendre en charge à partir de .Net 5.0 et de suggérer d'utiliser plutôt Web Api.

En fonction de combien vous êtes investi dans WCF, vous pouvez passer à l'API Web, peut-être gRPC, ou continuer à utiliser WCF, en espérant que les efforts de la communauté pour porter et supporter WCF pourraient réussir.


1 commentaires

Je vous remercie. Je ne suis pas très familier avec SignalR, mais d'un coup d'œil, est-ce une façon «moderne» de faire une communication Duplex, si vous envisagez de supprimer WCF?



3
votes

Core ne supporte pas très bien WCF au lieu de pas du tout. Surtout en termes d'authentification et de sécurité, comme le service créé à l'aide de la liaison WS *. Mais pour les services créés à l'aide des services de styles BasicHttpBinding ou Restful. Nous pourrions les appeler normalement sur des clients basés sur Core, que ce soit en utilisant la classe de proxy client ou Channel Factory. Veuillez vous référer au référentiel officiel ci-dessous.
https://github.com/dotnet/wcf
Je vous suggère de reconstruire votre projet de serveur avec BasicHttpBinding ou en utilisant Asp.net WebAPI pour créer le service backend.
https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api < / a>
N'hésitez pas à me faire savoir si je peux vous aider.


0 commentaires