Événements
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plusCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Ce tutoriel montre comment créer un client gRPC .NET Core et un serveur gRPC ASP.NET Core. À la fin, vous disposerez d’un client gRPC qui communique avec le service Greeter gRPC.
Dans ce tutoriel, vous allez :
Visual Studio 2022 avec la charge de travail Développement web et ASP.NET.
gRPC
. Sélectionnez Service ASP.NET Core gRPC, puis sélectionnez Suivant.GrpcGreeter
pour Nom du projet. Il est important de nommer le projet GrpcGreeter pour que les espaces de noms correspondent quand vous copiez et collez du code.Appuyez sur Ctrl+F5 pour exécuter sans le débogueur.
Visual Studio affiche la boîte de dialogue suivante lorsqu’un projet n’est pas encore configuré pour utiliser SSL :
Sélectionnez Oui si vous faites confiance au certificat SSL d’IIS Express.
La boîte de dialogue suivante s’affiche :
Sélectionnez Oui si vous acceptez d’approuver le certificat de développement.
Pour plus d’informations sur l’approbation du navigateur Firefox, consultez Erreur de certificat Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.
Visual Studio :
http://localhost:port
, par exemple http://localhost:7042
.
localhost
: nom d’hôte standard de l’ordinateur local. Localhost traite uniquement les requêtes web de l’ordinateur local.Les journaux affichent le service à l’écoute sur https://localhost:<port>
, où <port>
est le numéro de port localhost attribué de manière aléatoire lorsque le projet est créé et défini dans Properties/launchSettings.json
.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
Notes
Le modèle gRPC est configuré pour utiliser le protocole Transport Layer Security (TLS). Les clients gRPC doivent utiliser le protocole HTTPS pour appeler le serveur. Le numéro de port localhost du service gRPC est attribué de manière aléatoire lorsque le projet est créé et défini dans le fichier Properties\launchSettings.json du projet de service gRPC.
Fichiers projet GrpcGreeter :
Protos/greet.proto
: définit le gRPC Greeter
et est utilisé pour générer les ressources du serveur gRPC. Pour plus d’informations, consultez Introduction à gRPC.Services
: contient l’implémentation du service Greeter
.appSettings.json
: contient des données de configuration, telles que le protocole utilisé par Kestrel. Pour plus d’informations, consultez Configuration dans ASP.NET Core.Program.cs
, qui contient : Le projet client gRPC requiert les packages NuGet suivants :
PrivateAssets="All"
.Installez les packages à l’aide de la console PMC (console du Gestionnaire de package) ou à partir de Gérer les packages NuGet.
Dans Visual Studio, sélectionnez Outils>Gestionnaire de package NuGet>Console du Gestionnaire de package.
Dans la fenêtre Gestionnaire de package, exécutez cd GrpcGreeterClient
pour accéder au dossier contenant les fichiers GrpcGreeterClient.csproj
.
Exécutez les commandes suivantes :
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf
Install-Package Grpc.Tools
Google.Protobuf
et Grpc.Tools
.Créez un dossier Protos dans le projet du client gRPC.
Copiez le fichier Protos\greet.proto du service Greeter gRPC dans le dossier Protos du projet du client gRPC.
Mettez à jour l’espace de noms à l’intérieur du fichier greet.proto
vers l’espace de noms du projet :
option csharp_namespace = "GrpcGreeterClient";
Modifier le fichier projet GrpcGreeterClient.csproj
:
Cliquez avec le bouton droit sur le projet et sélectionnez Modifier le fichier de projet.
Ajoutez un groupe d’éléments avec un élément <Protobuf>
qui fait référence au fichier greet.proto :
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
GrpcGreeterClient
.Notes
Les types GrpcGreeterClient
sont générés automatiquement par le processus de génération. Le package d’outils Grpc.Tools génère les fichiers suivants en fonction du fichier greet.proto :
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs
: code de mémoire tampon de protocole qui remplit, sérialise et récupère les types de messages de requête et de réponse.GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs
: contient les classes clientes générées.Pour plus d’informations sur les ressources C# générées automatiquement par Grpc.Tools, consultez Services gRPC avec C# : ressources C# générées.
Mettez à jour le fichier Program.cs
du client gRPC par le code suivant.
using Grpc.Net.Client;
using GrpcGreeterClient;
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Dans le code mis en surbrillance précédent, remplacez le numéro de port localhost 7042
par le numéro de port HTTPS
spécifié dans Properties/launchSettings.json
au sein du projet de service GrpcGreeter
.
Program.cs
contient le point d’entrée et la logique du client gRPC.
Le client Greeter est créé en :
GrpcChannel
contenant les informations de création de la connexion au service gRPC.GrpcChannel
pour construire le client Greeter :// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Le client Greeter appelle la méthode SayHello
asynchrone. Le résultat de l’appel SayHello
s’affiche :
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Mettez à jour le fichier appsettings.Development.json
en ajoutant les lignes en surbrillance suivantes :
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning",
"Microsoft.AspNetCore.Hosting": "Information",
"Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
}
}
}
GrpcGreeter
, appuyez sur Ctrl+F5
pour démarrer le serveur sans le débogueur.GrpcGreeterClient
, appuyez sur Ctrl+F5
pour démarrer le client sans le débogueur.Le client envoie une salutation au service avec un message contenant son nom, GreeterClient. Le service envoie le message « Hello GreeterClient » comme réponse. La réponse « Hello GreeterClient » s’affiche dans l’invite de commandes :
Greeting: Hello GreeterClient
Press any key to exit...
Le service gRPC enregistre les détails de l’appel réussi dans les journaux écrits dans l’invite de commandes :
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\GH\aspnet\docs\4\Docs\aspnetcore\tutorials\grpc\grpc-start\sample\GrpcGreeter
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 POST https://localhost:<port>/greet.Greeter/SayHello application/grpc
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'gRPC - /greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'gRPC - /greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished HTTP/2 POST https://localhost:7042/greet.Greeter/SayHello - 200 - application/grpc 40.4615ms
Notes
Le code de cet article requiert le certificat de développement ASP.NET Core HTTPS pour sécuriser le service gRPC. Si le client gRPC .NET échoue avec le message The remote certificate is invalid according to the validation procedure.
ou The SSL connection could not be established.
, le certificat de développement n’est pas approuvé. Pour régler ce problème, consultez Appeler un service gRPC avec un certificat non approuvé/non valide.
Ce tutoriel montre comment créer un client gRPC .NET Core et un serveur gRPC ASP.NET Core. À la fin, vous disposerez d’un client gRPC qui communique avec le service Greeter gRPC.
Dans ce tutoriel, vous allez :
Visual Studio 2022 avec la charge de travail Développement web et ASP.NET.
gRPC
. Sélectionnez Service ASP.NET Core gRPC, puis sélectionnez Suivant.GrpcGreeter
pour Nom du projet. Il est important de nommer le projet GrpcGreeter pour que les espaces de noms correspondent quand vous copiez et collez du code.Appuyez sur Ctrl+F5 pour exécuter sans le débogueur.
Visual Studio affiche la boîte de dialogue suivante lorsqu’un projet n’est pas encore configuré pour utiliser SSL :
Sélectionnez Oui si vous faites confiance au certificat SSL d’IIS Express.
La boîte de dialogue suivante s’affiche :
Sélectionnez Oui si vous acceptez d’approuver le certificat de développement.
Pour plus d’informations sur l’approbation du navigateur Firefox, consultez Erreur de certificat Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.
Visual Studio :
http://localhost:port
, par exemple http://localhost:7042
.
localhost
: nom d’hôte standard de l’ordinateur local. Localhost traite uniquement les requêtes web de l’ordinateur local.Les journaux affichent le service à l’écoute sur https://localhost:<port>
, où <port>
est le numéro de port localhost attribué de manière aléatoire lorsque le projet est créé et défini dans Properties/launchSettings.json
.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
Notes
Le modèle gRPC est configuré pour utiliser le protocole Transport Layer Security (TLS). Les clients gRPC doivent utiliser le protocole HTTPS pour appeler le serveur. Le numéro de port localhost du service gRPC est attribué de manière aléatoire lorsque le projet est créé et défini dans le fichier Properties\launchSettings.json du projet de service gRPC.
Fichiers projet GrpcGreeter :
Protos/greet.proto
: définit le gRPC Greeter
et est utilisé pour générer les ressources du serveur gRPC. Pour plus d’informations, consultez Introduction à gRPC.Services
: contient l’implémentation du service Greeter
.appSettings.json
: contient des données de configuration, telles que le protocole utilisé par Kestrel. Pour plus d’informations, consultez Configuration dans ASP.NET Core.Program.cs
, qui contient : Le projet client gRPC requiert les packages NuGet suivants :
PrivateAssets="All"
.Installez les packages à l’aide de la console PMC (console du Gestionnaire de package) ou à partir de Gérer les packages NuGet.
Dans Visual Studio, sélectionnez Outils>Gestionnaire de package NuGet>Console du Gestionnaire de package.
Dans la fenêtre Gestionnaire de package, exécutez cd GrpcGreeterClient
pour accéder au dossier contenant les fichiers GrpcGreeterClient.csproj
.
Exécutez les commandes suivantes :
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf
Install-Package Grpc.Tools
Google.Protobuf
et Grpc.Tools
.Créez un dossier Protos dans le projet du client gRPC.
Copiez le fichier Protos\greet.proto du service Greeter gRPC dans le dossier Protos du projet du client gRPC.
Mettez à jour l’espace de noms à l’intérieur du fichier greet.proto
vers l’espace de noms du projet :
option csharp_namespace = "GrpcGreeterClient";
Modifier le fichier projet GrpcGreeterClient.csproj
:
Cliquez avec le bouton droit sur le projet et sélectionnez Modifier le fichier de projet.
Ajoutez un groupe d’éléments avec un élément <Protobuf>
qui fait référence au fichier greet.proto :
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
GrpcGreeterClient
.Notes
Les types GrpcGreeterClient
sont générés automatiquement par le processus de génération. Le package d’outils Grpc.Tools génère les fichiers suivants en fonction du fichier greet.proto :
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs
: code de mémoire tampon de protocole qui remplit, sérialise et récupère les types de messages de requête et de réponse.GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs
: contient les classes clientes générées.Pour plus d’informations sur les ressources C# générées automatiquement par Grpc.Tools, consultez Services gRPC avec C# : ressources C# générées.
Mettez à jour le fichier Program.cs
du client gRPC par le code suivant.
using System.Threading.Tasks;
using Grpc.Net.Client;
using GrpcGreeterClient;
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Dans le code mis en surbrillance précédent, remplacez le numéro de port localhost 7042
par le numéro de port HTTPS
spécifié dans Properties/launchSettings.json
au sein du projet de service GrpcGreeter
.
Program.cs
contient le point d’entrée et la logique du client gRPC.
Le client Greeter est créé en :
GrpcChannel
contenant les informations de création de la connexion au service gRPC.GrpcChannel
pour construire le client Greeter :// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Le client Greeter appelle la méthode SayHello
asynchrone. Le résultat de l’appel SayHello
s’affiche :
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Mettez à jour le fichier appsettings.Development.json
en ajoutant les lignes en surbrillance suivantes :
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
,"Microsoft.AspNetCore.Hosting": "Information",
"Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
}
}
}
Ctrl+F5
pour démarrer le serveur sans le débogueur.GrpcGreeterClient
, appuyez sur Ctrl+F5
pour démarrer le client sans le débogueur.Le client envoie une salutation au service avec un message contenant son nom, GreeterClient. Le service envoie le message « Hello GreeterClient » comme réponse. La réponse « Hello GreeterClient » s’affiche dans l’invite de commandes :
Greeting: Hello GreeterClient
Press any key to exit...
Le service gRPC enregistre les détails de l’appel réussi dans les journaux écrits dans l’invite de commandes :
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\GH\aspnet\docs\4\Docs\aspnetcore\tutorials\grpc\grpc-start\sample\GrpcGreeter
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 POST https://localhost:<port>/Greet.Greeter/SayHello application/grpc
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 78.32260000000001ms 200 application/grpc
Notes
Le code de cet article requiert le certificat de développement ASP.NET Core HTTPS pour sécuriser le service gRPC. Si le client gRPC .NET échoue avec le message The remote certificate is invalid according to the validation procedure.
ou The SSL connection could not be established.
, le certificat de développement n’est pas approuvé. Pour régler ce problème, consultez Appeler un service gRPC avec un certificat non approuvé/non valide.
Ce tutoriel montre comment créer un client gRPC .NET Core et un serveur gRPC ASP.NET Core. À la fin, vous disposerez d’un client gRPC qui communique avec le service Greeter gRPC.
Dans ce tutoriel, vous allez :
Visual Studio 2022 avec la charge de travail Développement web et ASP.NET.
gRPC
. Sélectionnez Service ASP.NET Core gRPC, puis sélectionnez Suivant.GrpcGreeter
pour Nom du projet. Il est important de nommer le projet GrpcGreeter pour que les espaces de noms correspondent quand vous copiez et collez du code.Appuyez sur Ctrl+F5 pour exécuter sans le débogueur.
Visual Studio affiche la boîte de dialogue suivante lorsqu’un projet n’est pas encore configuré pour utiliser SSL :
Sélectionnez Oui si vous faites confiance au certificat SSL d’IIS Express.
La boîte de dialogue suivante s’affiche :
Sélectionnez Oui si vous acceptez d’approuver le certificat de développement.
Pour plus d’informations sur l’approbation du navigateur Firefox, consultez Erreur de certificat Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.
Visual Studio :
http://localhost:port
, par exemple http://localhost:7042
.
localhost
: nom d’hôte standard de l’ordinateur local. Localhost traite uniquement les requêtes web de l’ordinateur local.Les journaux affichent le service à l’écoute sur https://localhost:<port>
, où <port>
est le numéro de port localhost attribué de manière aléatoire lorsque le projet est créé et défini dans Properties/launchSettings.json
.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
Notes
Le modèle gRPC est configuré pour utiliser le protocole Transport Layer Security (TLS). Les clients gRPC doivent utiliser le protocole HTTPS pour appeler le serveur. Le numéro de port localhost du service gRPC est attribué de manière aléatoire lorsque le projet est créé et défini dans le fichier Properties\launchSettings.json du projet de service gRPC.
MacOS ne prend pas en charge ASP.NET Core gRPC avec TLS. Une configuration supplémentaire est nécessaire pour exécuter correctement les services gRPC sur MacOS. Pour plus d’informations, consultez Impossible de démarrer l’application ASP.NET Core gRPC sur MacOS.
Fichiers projet GrpcGreeter :
Protos/greet.proto
: définit le gRPC Greeter
et est utilisé pour générer les ressources du serveur gRPC. Pour plus d’informations, consultez Introduction à gRPC.Services
: contient l’implémentation du service Greeter
.appSettings.json
: contient des données de configuration, telles que le protocole utilisé par Kestrel. Pour plus d’informations, consultez Configuration dans ASP.NET Core.Program.cs
, qui contient : Le projet client gRPC requiert les packages NuGet suivants :
PrivateAssets="All"
.Installez les packages à l’aide de la console PMC (console du Gestionnaire de package) ou à partir de Gérer les packages NuGet.
Dans Visual Studio, sélectionnez Outils>Gestionnaire de package NuGet>Console du Gestionnaire de package.
Dans la fenêtre Gestionnaire de package, exécutez cd GrpcGreeterClient
pour accéder au dossier contenant les fichiers GrpcGreeterClient.csproj
.
Exécutez les commandes suivantes :
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf
Install-Package Grpc.Tools
Google.Protobuf
et Grpc.Tools
.Créez un dossier Protos dans le projet du client gRPC.
Copiez le fichier Protos\greet.proto du service Greeter gRPC dans le dossier Protos du projet du client gRPC.
Mettez à jour l’espace de noms à l’intérieur du fichier greet.proto
vers l’espace de noms du projet :
option csharp_namespace = "GrpcGreeterClient";
Modifier le fichier projet GrpcGreeterClient.csproj
:
Cliquez avec le bouton droit sur le projet et sélectionnez Modifier le fichier de projet.
Ajoutez un groupe d’éléments avec un élément <Protobuf>
qui fait référence au fichier greet.proto :
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
GrpcGreeterClient
.Notes
Les types GrpcGreeterClient
sont générés automatiquement par le processus de génération. Le package d’outils Grpc.Tools génère les fichiers suivants en fonction du fichier greet.proto :
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs
: code de mémoire tampon de protocole qui remplit, sérialise et récupère les types de messages de requête et de réponse.GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs
: contient les classes clientes générées.Pour plus d’informations sur les ressources C# générées automatiquement par Grpc.Tools, consultez Services gRPC avec C# : ressources C# générées.
Mettez à jour le fichier Program.cs
du client gRPC par le code suivant.
using System.Threading.Tasks;
using Grpc.Net.Client;
using GrpcGreeterClient;
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Dans le code mis en surbrillance précédent, remplacez le numéro de port localhost 7042
par le numéro de port HTTPS
spécifié dans Properties/launchSettings.json
au sein du projet de service GrpcGreeter
.
Program.cs
contient le point d’entrée et la logique du client gRPC.
Le client Greeter est créé en :
GrpcChannel
contenant les informations de création de la connexion au service gRPC.GrpcChannel
pour construire le client Greeter :// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Le client Greeter appelle la méthode SayHello
asynchrone. Le résultat de l’appel SayHello
s’affiche :
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Mettez à jour le fichier appsettings.Development.json
en ajoutant les lignes en surbrillance suivantes :
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
,"Microsoft.AspNetCore.Hosting": "Information",
"Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
}
}
}
Ctrl+F5
pour démarrer le serveur sans le débogueur.GrpcGreeterClient
, appuyez sur Ctrl+F5
pour démarrer le client sans le débogueur.Le client envoie une salutation au service avec un message contenant son nom, GreeterClient. Le service envoie le message « Hello GreeterClient » comme réponse. La réponse « Hello GreeterClient » s’affiche dans l’invite de commandes :
Greeting: Hello GreeterClient
Press any key to exit...
Le service gRPC enregistre les détails de l’appel réussi dans les journaux écrits dans l’invite de commandes :
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\GH\aspnet\docs\4\Docs\aspnetcore\tutorials\grpc\grpc-start\sample\GrpcGreeter
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 POST https://localhost:<port>/Greet.Greeter/SayHello application/grpc
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 78.32260000000001ms 200 application/grpc
Notes
Le code de cet article requiert le certificat de développement ASP.NET Core HTTPS pour sécuriser le service gRPC. Si le client gRPC .NET échoue avec le message The remote certificate is invalid according to the validation procedure.
ou The SSL connection could not be established.
, le certificat de développement n’est pas approuvé. Pour régler ce problème, consultez Appeler un service gRPC avec un certificat non approuvé/non valide.
Ce tutoriel montre comment créer un client gRPC .NET Core et un serveur gRPC ASP.NET Core. À la fin, vous disposerez d’un client gRPC qui communique avec le service Greeter gRPC.
Dans ce tutoriel, vous allez :
gRPC
. Sélectionnez Service ASP.NET Core gRPC, puis sélectionnez Suivant.GrpcGreeter
pour Nom du projet. Il est important de nommer le projet GrpcGreeter pour que les espaces de noms correspondent quand vous copiez et collez du code.Appuyez sur Ctrl+F5 pour exécuter sans le débogueur.
Visual Studio affiche la boîte de dialogue suivante lorsqu’un projet n’est pas encore configuré pour utiliser SSL :
Sélectionnez Oui si vous faites confiance au certificat SSL d’IIS Express.
La boîte de dialogue suivante s’affiche :
Sélectionnez Oui si vous acceptez d’approuver le certificat de développement.
Pour plus d’informations sur l’approbation du navigateur Firefox, consultez Erreur de certificat Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.
Visual Studio :
http://localhost:port
, par exemple http://localhost:7042
.
localhost
: nom d’hôte standard de l’ordinateur local. Localhost traite uniquement les requêtes web de l’ordinateur local.Les journaux affichent le service à l’écoute sur https://localhost:<port>
, où <port>
est le numéro de port localhost attribué de manière aléatoire lorsque le projet est créé et défini dans Properties/launchSettings.json
.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
Notes
Le modèle gRPC est configuré pour utiliser le protocole Transport Layer Security (TLS). Les clients gRPC doivent utiliser le protocole HTTPS pour appeler le serveur. Le numéro de port localhost du service gRPC est attribué de manière aléatoire lorsque le projet est créé et défini dans le fichier Properties\launchSettings.json du projet de service gRPC.
MacOS ne prend pas en charge ASP.NET Core gRPC avec TLS. Une configuration supplémentaire est nécessaire pour exécuter correctement les services gRPC sur MacOS. Pour plus d’informations, consultez Impossible de démarrer l’application ASP.NET Core gRPC sur MacOS.
Fichiers projet GrpcGreeter :
Protos/greet.proto
: définit le gRPC Greeter
et est utilisé pour générer les ressources du serveur gRPC. Pour plus d’informations, consultez Introduction à gRPC.Services
: contient l’implémentation du service Greeter
.appSettings.json
: contient des données de configuration, telles que le protocole utilisé par Kestrel. Pour plus d’informations, consultez Configuration dans ASP.NET Core.Program.cs
, qui contient : Le projet client gRPC requiert les packages NuGet suivants :
PrivateAssets="All"
.Installez les packages à l’aide de la console PMC (console du Gestionnaire de package) ou à partir de Gérer les packages NuGet.
Dans Visual Studio, sélectionnez Outils>Gestionnaire de package NuGet>Console du Gestionnaire de package.
Dans la fenêtre Gestionnaire de package, exécutez cd GrpcGreeterClient
pour accéder au dossier contenant les fichiers GrpcGreeterClient.csproj
.
Exécutez les commandes suivantes :
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf
Install-Package Grpc.Tools
Google.Protobuf
et Grpc.Tools
.Créez un dossier Protos dans le projet du client gRPC.
Copiez le fichier Protos\greet.proto du service Greeter gRPC dans le dossier Protos du projet du client gRPC.
Mettez à jour l’espace de noms à l’intérieur du fichier greet.proto
vers l’espace de noms du projet :
option csharp_namespace = "GrpcGreeterClient";
Modifier le fichier projet GrpcGreeterClient.csproj
:
Cliquez avec le bouton droit sur le projet et sélectionnez Modifier le fichier de projet.
Ajoutez un groupe d’éléments avec un élément <Protobuf>
qui fait référence au fichier greet.proto :
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
GrpcGreeterClient
.Notes
Les types GrpcGreeterClient
sont générés automatiquement par le processus de génération. Le package d’outils Grpc.Tools génère les fichiers suivants en fonction du fichier greet.proto :
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs
: code de mémoire tampon de protocole qui remplit, sérialise et récupère les types de messages de requête et de réponse.GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs
: contient les classes clientes générées.Pour plus d’informations sur les ressources C# générées automatiquement par Grpc.Tools, consultez Services gRPC avec C# : ressources C# générées.
Mettez à jour le fichier Program.cs
du client gRPC par le code suivant.
using System.Threading.Tasks;
using Grpc.Net.Client;
using GrpcGreeterClient;
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Dans le code mis en surbrillance précédent, remplacez le numéro de port localhost 7042
par le numéro de port HTTPS
spécifié dans Properties/launchSettings.json
au sein du projet de service GrpcGreeter
.
Program.cs
contient le point d’entrée et la logique du client gRPC.
Le client Greeter est créé en :
GrpcChannel
contenant les informations de création de la connexion au service gRPC.GrpcChannel
pour construire le client Greeter :// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Le client Greeter appelle la méthode SayHello
asynchrone. Le résultat de l’appel SayHello
s’affiche :
// The port number must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:7042");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
Ctrl+F5
pour démarrer le serveur sans le débogueur.GrpcGreeterClient
, appuyez sur Ctrl+F5
pour démarrer le client sans le débogueur.Le client envoie une salutation au service avec un message contenant son nom, GreeterClient. Le service envoie le message « Hello GreeterClient » comme réponse. La réponse « Hello GreeterClient » s’affiche dans l’invite de commandes :
Greeting: Hello GreeterClient
Press any key to exit...
Le service gRPC enregistre les détails de l’appel réussi dans les journaux écrits dans l’invite de commandes :
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:<port>
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\GH\aspnet\docs\4\Docs\aspnetcore\tutorials\grpc\grpc-start\sample\GrpcGreeter
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 POST https://localhost:<port>/Greet.Greeter/SayHello application/grpc
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 78.32260000000001ms 200 application/grpc
Mettez à jour le fichier appsettings.Development.json
en ajoutant les lignes suivantes :
"Microsoft.AspNetCore.Hosting": "Information",
"Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
Notes
Le code de cet article requiert le certificat de développement ASP.NET Core HTTPS pour sécuriser le service gRPC. Si le client gRPC .NET échoue avec le message The remote certificate is invalid according to the validation procedure.
ou The SSL connection could not be established.
, le certificat de développement n’est pas approuvé. Pour régler ce problème, consultez Appeler un service gRPC avec un certificat non approuvé/non valide.
Ce tutoriel montre comment créer un client gRPC .NET Core et un serveur gRPC ASP.NET Core.
À la fin, vous disposerez d’un client gRPC qui communique avec le service Greeter gRPC.
Affichez ou téléchargez un exemple de code (procédure de téléchargement).
Dans ce tutoriel, vous allez :
GrpcGreeter
pour Nom du projet. Il est important de nommer le projet GrpcGreeter pour que les espaces de noms correspondent quand vous copiez et collez du code.Appuyez sur Ctrl+F5 pour exécuter sans le débogueur.
Visual Studio affiche la boîte de dialogue suivante lorsqu’un projet n’est pas encore configuré pour utiliser SSL :
Sélectionnez Oui si vous faites confiance au certificat SSL d’IIS Express.
La boîte de dialogue suivante s’affiche :
Sélectionnez Oui si vous acceptez d’approuver le certificat de développement.
Pour plus d’informations sur l’approbation du navigateur Firefox, consultez Erreur de certificat Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.
Visual Studio démarre IIS Express et exécute l’application. La barre d’adresses affiche localhost:port#
au lieu de quelque chose qui ressemble à example.com
. La raison en est que localhost
est le nom d’hôte standard de l’ordinateur local. Localhost traite uniquement les requêtes web de l’ordinateur local. Quand Visual Studio crée un projet web, un port aléatoire est utilisé pour le serveur web.
Les journaux indiquent que le service écoute sur https://localhost:5001
.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
Notes
Le modèle gRPC est configuré pour utiliser le protocole Transport Layer Security (TLS). Les clients gRPC doivent utiliser le protocole HTTPS pour appeler le serveur.
MacOS ne prend pas en charge ASP.NET Core gRPC avec TLS. Une configuration supplémentaire est nécessaire pour exécuter correctement les services gRPC sur MacOS. Pour plus d’informations, consultez Impossible de démarrer l’application ASP.NET Core gRPC sur MacOS.
Fichiers projet GrpcGreeter :
Greeter
et est utilisé pour générer les ressources du serveur gRPC. Pour plus d’informations, consultez Introduction à gRPC.Greeter
.appsettings.json
: contient des données de configuration, telles que le protocole utilisé par Kestrel. Pour plus d’informations, consultez Configuration dans ASP.NET Core.Program.cs
: contient le point d’entrée du service gRPC. Pour plus d’informations, consultez Hôte générique .NET dans ASP.NET Core.Startup.cs
: contient le code qui configure le comportement de l’application. Pour plus d’informations, consultez Démarrage des applications.Le projet client gRPC requiert les packages suivants :
PrivateAssets="All"
.Installez les packages à l’aide de la console PMC (console du Gestionnaire de package) ou à partir de Gérer les packages NuGet.
Dans Visual Studio, sélectionnez Outils>Gestionnaire de package NuGet>Console du Gestionnaire de package.
Dans la fenêtre Gestionnaire de package, exécutez cd GrpcGreeterClient
pour accéder au dossier contenant les fichiers GrpcGreeterClient.csproj
.
Exécutez les commandes suivantes :
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf
Install-Package Grpc.Tools
Google.Protobuf
et Grpc.Tools
.Créez un dossier Protos dans le projet du client gRPC.
Copiez le fichier Protos\greet.proto du service Greeter gRPC dans le dossier Protos du projet du client gRPC.
Mettez à jour l’espace de noms à l’intérieur du fichier greet.proto
vers l’espace de noms du projet :
option csharp_namespace = "GrpcGreeterClient";
Modifier le fichier projet GrpcGreeterClient.csproj
:
Cliquez avec le bouton droit sur le projet et sélectionnez Modifier le fichier de projet.
Ajoutez un groupe d’éléments avec un élément <Protobuf>
qui fait référence au fichier greet.proto :
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
GrpcGreeterClient
.Notes
Les types GrpcGreeterClient
sont générés automatiquement par le processus de génération. Le package d’outils Grpc.Tools génère les fichiers suivants en fonction du fichier greet.proto :
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs
: code de mémoire tampon de protocole qui remplit, sérialise et récupère les types de messages de requête et de réponse.GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs
: contient les classes clientes générées.Pour plus d’informations sur les ressources C# générées automatiquement par Grpc.Tools, consultez Services gRPC avec C# : ressources C# générées.
Mettez à jour le fichier Program.cs
du client gRPC par le code suivant :
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Grpc.Net.Client;
namespace GrpcGreeterClient
{
class Program
{
static async Task Main(string[] args)
{
// The port number(5001) must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Program.cs
contient le point d’entrée et la logique du client gRPC.
Le client Greeter est créé en :
GrpcChannel
contenant les informations de création de la connexion au service gRPC.GrpcChannel
pour construire le client Greeter :static async Task Main(string[] args)
{
// The port number(5001) must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
Le client Greeter appelle la méthode SayHello
asynchrone. Le résultat de l’appel SayHello
s’affiche :
static async Task Main(string[] args)
{
// The port number(5001) must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
Ctrl+F5
pour démarrer le serveur sans le débogueur.GrpcGreeterClient
, appuyez sur Ctrl+F5
pour démarrer le client sans le débogueur.Le client envoie une salutation au service avec un message contenant son nom, GreeterClient. Le service envoie le message « Hello GreeterClient » comme réponse. La réponse « Hello GreeterClient » s’affiche dans l’invite de commandes :
Greeting: Hello GreeterClient
Press any key to exit...
Le service gRPC enregistre les détails de l’appel réussi dans les journaux écrits dans l’invite de commandes :
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\GH\aspnet\docs\4\Docs\aspnetcore\tutorials\grpc\grpc-start\sample\GrpcGreeter
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 POST https://localhost:5001/Greet.Greeter/SayHello application/grpc
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 78.32260000000001ms 200 application/grpc
Notes
Le code de cet article requiert le certificat de développement ASP.NET Core HTTPS pour sécuriser le service gRPC. Si le client gRPC .NET échoue avec le message The remote certificate is invalid according to the validation procedure.
ou The SSL connection could not be established.
, le certificat de développement n’est pas approuvé. Pour régler ce problème, consultez Appeler un service gRPC avec un certificat non approuvé/non valide.
Ce tutoriel montre comment créer un client gRPC .NET Core et un serveur gRPC ASP.NET Core.
À la fin, vous disposerez d’un client gRPC qui communique avec le service Greeter gRPC.
Affichez ou téléchargez un exemple de code (procédure de téléchargement).
Dans ce tutoriel, vous allez :
Démarrez Visual Studio et sélectionnez Créer un projet. Vous pouvez également, dans le menu Fichier de Visual Studio, sélectionner Nouveau>Projet.
Dans la boîte de dialogue Créer un nouveau projet, sélectionnez Service gPRC, puis sélectionnez Suivant :
Nommez le projet GrpcGreeter. Il est important de nommer le projet GrpcGreeter pour que les espaces de noms correspondent quand vous copiez et collez du code.
Cliquez sur Créer.
Dans la boîte de dialogue Créer un service gRPC :
Appuyez sur Ctrl+F5 pour exécuter sans le débogueur.
Visual Studio affiche la boîte de dialogue suivante lorsqu’un projet n’est pas encore configuré pour utiliser SSL :
Sélectionnez Oui si vous faites confiance au certificat SSL d’IIS Express.
La boîte de dialogue suivante s’affiche :
Sélectionnez Oui si vous acceptez d’approuver le certificat de développement.
Pour plus d’informations sur l’approbation du navigateur Firefox, consultez Erreur de certificat Firefox SEC_ERROR_INADEQUATE_KEY_USAGE.
Visual Studio démarre IIS Express et exécute l’application. La barre d’adresses affiche localhost:port#
au lieu de quelque chose qui ressemble à example.com
. La raison en est que localhost
est le nom d’hôte standard de l’ordinateur local. Localhost traite uniquement les requêtes web de l’ordinateur local. Quand Visual Studio crée un projet web, un port aléatoire est utilisé pour le serveur web.
Les journaux indiquent que le service écoute sur https://localhost:5001
.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
Notes
Le modèle gRPC est configuré pour utiliser le protocole Transport Layer Security (TLS). Les clients gRPC doivent utiliser le protocole HTTPS pour appeler le serveur.
MacOS ne prend pas en charge ASP.NET Core gRPC avec TLS. Une configuration supplémentaire est nécessaire pour exécuter correctement les services gRPC sur MacOS. Pour plus d’informations, consultez Impossible de démarrer l’application ASP.NET Core gRPC sur MacOS.
Fichiers projet GrpcGreeter :
Greeter
et est utilisé pour générer les ressources du serveur gRPC. Pour plus d’informations, consultez Introduction à gRPC.Greeter
.appsettings.json
: contient des données de configuration, telles que le protocole utilisé par Kestrel. Pour plus d’informations, consultez Configuration dans ASP.NET Core.Program.cs
: contient le point d’entrée du service gRPC. Pour plus d’informations, consultez Hôte générique .NET dans ASP.NET Core.Startup.cs
: contient le code qui configure le comportement de l’application. Pour plus d’informations, consultez Démarrage des applications.Le projet client gRPC requiert les packages suivants :
PrivateAssets="All"
.Installez les packages à l’aide de la console PMC (console du Gestionnaire de package) ou à partir de Gérer les packages NuGet.
Dans Visual Studio, sélectionnez Outils>Gestionnaire de package NuGet>Console du Gestionnaire de package.
Dans la fenêtre Gestionnaire de package, exécutez cd GrpcGreeterClient
pour accéder au dossier contenant les fichiers GrpcGreeterClient.csproj
.
Exécutez les commandes suivantes :
Install-Package Grpc.Net.Client
Install-Package Google.Protobuf
Install-Package Grpc.Tools
Google.Protobuf
et Grpc.Tools
.Créez un dossier Protos dans le projet du client gRPC.
Copiez le fichier Protos\greet.proto du service Greeter gRPC dans le dossier Protos du projet du client gRPC.
Mettez à jour l’espace de noms à l’intérieur du fichier greet.proto
vers l’espace de noms du projet :
option csharp_namespace = "GrpcGreeterClient";
Modifier le fichier projet GrpcGreeterClient.csproj
:
Cliquez avec le bouton droit sur le projet et sélectionnez Modifier le fichier de projet.
Ajoutez un groupe d’éléments avec un élément <Protobuf>
qui fait référence au fichier greet.proto :
<ItemGroup>
<Protobuf Include="Protos\greet.proto" GrpcServices="Client" />
</ItemGroup>
GrpcGreeterClient
.Notes
Les types GrpcGreeterClient
sont générés automatiquement par le processus de génération. Le package d’outils Grpc.Tools génère les fichiers suivants en fonction du fichier greet.proto :
GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs
: code de mémoire tampon de protocole qui remplit, sérialise et récupère les types de messages de requête et de réponse.GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs
: contient les classes clientes générées.Pour plus d’informations sur les ressources C# générées automatiquement par Grpc.Tools, consultez Services gRPC avec C# : ressources C# générées.
Mettez à jour le fichier Program.cs
du client gRPC par le code suivant :
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Grpc.Net.Client;
namespace GrpcGreeterClient
{
class Program
{
static async Task Main(string[] args)
{
// The port number(5001) must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Program.cs
contient le point d’entrée et la logique du client gRPC.
Le client Greeter est créé en :
GrpcChannel
contenant les informations de création de la connexion au service gRPC.GrpcChannel
pour construire le client Greeter :static async Task Main(string[] args)
{
// The port number(5001) must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
Le client Greeter appelle la méthode SayHello
asynchrone. Le résultat de l’appel SayHello
s’affiche :
static async Task Main(string[] args)
{
// The port number(5001) must match the port of the gRPC server.
using var channel = GrpcChannel.ForAddress("https://localhost:5001");
var client = new Greeter.GreeterClient(channel);
var reply = await client.SayHelloAsync(
new HelloRequest { Name = "GreeterClient" });
Console.WriteLine("Greeting: " + reply.Message);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
Ctrl+F5
pour démarrer le serveur sans le débogueur.GrpcGreeterClient
, appuyez sur Ctrl+F5
pour démarrer le client sans le débogueur.Le client envoie une salutation au service avec un message contenant son nom, GreeterClient. Le service envoie le message « Hello GreeterClient » comme réponse. La réponse « Hello GreeterClient » s’affiche dans l’invite de commandes :
Greeting: Hello GreeterClient
Press any key to exit...
Le service gRPC enregistre les détails de l’appel réussi dans les journaux écrits dans l’invite de commandes :
info: Microsoft.Hosting.Lifetime[0]
Now listening on: https://localhost:5001
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\GH\aspnet\docs\4\Docs\aspnetcore\tutorials\grpc\grpc-start\sample\GrpcGreeter
info: Microsoft.AspNetCore.Hosting.Diagnostics[1]
Request starting HTTP/2 POST https://localhost:5001/Greet.Greeter/SayHello application/grpc
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[0]
Executing endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Routing.EndpointMiddleware[1]
Executed endpoint 'gRPC - /Greet.Greeter/SayHello'
info: Microsoft.AspNetCore.Hosting.Diagnostics[2]
Request finished in 78.32260000000001ms 200 application/grpc
Notes
Le code de cet article requiert le certificat de développement ASP.NET Core HTTPS pour sécuriser le service gRPC. Si le client gRPC .NET échoue avec le message The remote certificate is invalid according to the validation procedure.
ou The SSL connection could not be established.
, le certificat de développement n’est pas approuvé. Pour régler ce problème, consultez Appeler un service gRPC avec un certificat non approuvé/non valide.
Commentaires sur ASP.NET Core
ASP.NET Core est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Événements
Championnats du monde Power BI DataViz
14 févr., 16 h - 31 mars, 16 h
Avec 4 chances d’entrer, vous pourriez gagner un package de conférence et le rendre à la Live Grand Finale à Las Vegas
En savoir plusEntrainement
Parcours d’apprentissage
Créer des applications et des services natifs cloud avec .NET et ASP.NET Core - Training
Créez des applications et des services déployables, hautement évolutifs et résilients indépendamment à l’aide de la plateforme .NET gratuite et open source. Avec .NET, vous pouvez utiliser la technologie de microservice populaire comme Docker, Kubernetes, Dapr, Azure Container Registry, et bien plus encore pour les applications et services .NET et ASP.NET Core.