Lors du développement d’un nouveau projet, en utilisant asp.net technologie centrale, l’ancien projet peut être un service WCF développé avec le .NET Framework 4, car le coût de reconstruction est trop élevé, il est nécessaire d’utiliser asp.net noyau pour appeler l’interface de service WCF.
Tout d’abord, créez deux nouveaux projets :
ASP.NET Projet Core 3.1 : dotnet-core-call-wcf Projet .NET Framework 4 (application de service WCF) : schools-wcf-service
Visual Studio 2019 veut créer un service WCF, mais ne trouve pas le modèle, solution :
Sélectionnez Installer plus d’outils et fonctionnalités pour ouvrir l’installateur de Visual Studio. Sélectionnez l’onglet Composants individuels, faites défiler jusqu’à Activités de développement, sélectionnez Windows Communication Foundation, puis cliquez sur Modifier.
WCF crée deux interfaces comme suit :
Le code d’implémentation de l’interface est le suivant :
Un contrat de service est un ensemble d’opérations de service associées, et lorsque nous appliquons un ServiceContractAttribute sur une interface, nous lui attribuons un attribut de contrat de service. Cependant, pour un tel type, son idiome ne devient pas automatiquement une opération de service contractuel, et ce n’est que lorsque la fonctionnalité OperationContractAttribute est appliquée que le membre de la méthode correspondant peut devenir une opération de service accessible par appel de service.
Lorsque vous lancez le projet wcf, il exécutera automatiquement WcfTestClient et essaiera de l’appeler comme montré dans la figure ci-dessous :
Utiliser ASP.NET projets Core pour appeler les services WCF
Faites un clic droit sur Services connectés, sélectionnez le service auquel vous souhaitez ajouter une connexion, puis sélectionnez le service WCF, comme illustré sur l’image suivante :
Adresse de service pourvue : http://localhost:3705/Service1.svc
Erreurs possibles :
Comme il est impossible d’écrire l’adresse de service WCF jusqu’à la mort, ajoutez le code suivant au fichier appsettings.json :
Modifier le fichier Startup.cs et enregistrer le service WCF avec le code suivant :
Appelez le service wcf sur le contrôleur HomeController, première injection de constructeur, le code est le suivant :
Appel au service WCF :
Utilisez le site web asp.net Core, l’effet est le suivant :
Nous essayons de modifier le service WCF pour que l’interface renvoie le résultat après 3 minutes, puis redémarrons asp.net cœur pour appeler le service WCF, et l’erreur est la suivante :
AggregateException: One or more errors occurred. (The request channel timed out attempting to send after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.) À ce stade, nous devons modifier le délai d’attente par défaut, personnaliser la liaison BasicHttpBinding et rééditer le fichier Startup.cs, comme suit :
Téléchargement du code source :
Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaît Répondre
|