Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här självstudien visar hur du skapar en .NET gRPC-klient och en ASP.NET Core gRPC-server. I slutet har du en gRPC-klient som kommunicerar med gRPC Greeter-tjänsten.
I den här handledningen:
- Skapa en gRPC-server.
- Skapa en gRPC-klient.
- Testa gRPC-klienten med gRPC Greeter-tjänsten.
Prerequisites
- Visual Studio 2022 med arbetsbelastningen ASP.NET och webbutveckling.   
Skapa en gRPC-tjänst
- Starta Visual Studio 2022 och välj Nytt projekt.
- I dialogrutan Skapa ett nytt projekt söker du efter gRPC. Välj ASP.NET Core gRPC Service och välj Nästa.
- I dialogrutan Konfigurera ditt nya projekt anger du GrpcGreeterför Projektnamn. Det är viktigt att namnge projektet GrpcGreeter så att namnrymderna matchar när du kopierar och klistrar in kod.
- Välj Nästa.
- I dialogrutan Ytterligare information väljer du .NET 9.0 (Standard Term Support) och väljer sedan Skapa.
Kör tjänsten
- Tryck på Ctrl+F5 för att köra utan felsökningsprogrammet. - Visual Studio visar följande dialogruta när ett projekt ännu inte har konfigurerats för att använda SSL:   - Välj Ja om du litar på IIS Express SSL-certifikatet. - Följande dialogruta visas: - Dialogrutan  - Välj Ja om du samtycker till att lita på utvecklingscertifikatet. - Information om hur du litar på Webbläsaren Firefox finns i Firefox SEC_ERROR_INADEQUATE_KEY_USAGE certifikatfel. - Visual Studio: - Startar Kestrel server.
- Startar en webbläsare.
- Navigerar till http://localhost:port, till exempelhttp://localhost:7042.- port: Ett slumpmässigt tilldelat portnummer för appen.
- 
              localhost: Standardvärdnamnet för den lokala datorn. Localhost hanterar endast webbbegäranden från den lokala datorn.
 
 
Loggarna visar att tjänsten lyssnar på https://localhost:<port>, där <port> är det localhost-portnummer som tilldelas slumpmässigt när projektet skapas och sorteras i 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
Note
GRPC-mallen är konfigurerad för att använda Transport Layer Security (TLS). gRPC-klienter måste använda HTTPS för att anropa servern. Portnumret för gRPC-tjänsten localhost tilldelas slumpmässigt när projektet skapas och anges i Egenskaper\launchSettings.jspå fil i gRPC-tjänstprojektet.
Granska projektfilerna
GrpcGreeter projektfiler:
- 
              Protos/greet.proto: definierarGreetergRPC och används för att generera gRPC-servertillgångarna. Mer information finns i Introduktion till gRPC-.
- 
              Servicesmapp: Innehåller implementeringen avGreeter-tjänsten.
- 
              appSettings.json: Innehåller konfigurationsdata som det protokoll som används av Kestrel. Mer information finns i Configuration i ASP.NET Core.
- 
              Program.cs, som innehåller:- Startpunkten för gRPC-tjänsten. Mer information finns i .NET Generic Host i ASP.NET Core.
- Kod som konfigurerar appbeteende. Mer information finns i App-start.
 
Skapa gRPC-klienten i en .NET-konsolapp
- Öppna en andra instans av Visual Studio och välj Nytt projekt.
- I dialogrutan Skapa ett nytt projekt väljer du Konsolappoch väljer Nästa.
- I textrutan Projektnamn anger du GrpcGreeterClient och väljer Nästa.
- I dialogrutan Ytterligare information väljer du .NET 9.0 (Standard Term Support) och väljer sedan Skapa.
Lägga till nödvändiga NuGet-paket
GRPC-klientprojektet kräver följande NuGet-paket:
- Grpc.Net.Client, som innehåller .NET-klienten.
- Google.Protobuf, som innehåller protobuf-meddelande-API:er för C#.
- 
              Grpc.Tools, som innehåller C#-verktygsstöd för protobuf-filer. Verktygspaketet krävs inte vid körningstid, så beroendet markeras med PrivateAssets="All".
Installera paketen med antingen Package Manager Console (PMC) eller Hantera NuGet-paket.
PMC-alternativ för att installera paket
- I Visual Studio väljer du Tools>NuGet Package Manager>Package Manager Console 
- Från fönstret Package Manager Console kör du - cd GrpcGreeterClientför att ändra kataloger till mappen som innehåller- GrpcGreeterClient.csproj-filerna.
- Kör följande kommandon: - Install-Package Grpc.Net.Client Install-Package Google.Protobuf Install-Package Grpc.Tools
Hantera NuGet-paket för att installera paket
- Högerklicka på projektet i Solution Explorer>Hantera NuGet-paket.
- Välj fliken Bläddra.
- Ange Grpc.Net.Client i sökrutan.
- Välj Grpc.Net.Client-paketet på fliken Bläddra och välj Installera.
- Upprepa för Google.ProtobufochGrpc.Tools.
Lägg till greet.proto
- Skapa en Protos- mapp i gRPC-klientprojektet. 
- Kopiera filen Protos\greet.proto från gRPC Greeter-tjänsten till mappen Protos i gRPC-klientprojektet. 
- Uppdatera namnområdet i filen - greet.prototill projektets namnområde:- option csharp_namespace = "GrpcGreeterClient";
- Redigera - GrpcGreeterClient.csproj-projektfilen:
Högerklicka på projektet och välj Redigera projektfil.
- Lägg till en objektgrupp med ett - <Protobuf>element som refererar till filen greet.proto:- <ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
Skapa Greeter-klienten
- Skapa klientprojektet för att skapa typerna i GrpcGreeterClientnamnområdet.
Note
De GrpcGreeterClient typerna genereras automatiskt av byggprocessen. Verktygspaketet Grpc.Tools genererar följande filer baserat på filen greet.proto:
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs: Den protokollbuffertkod som fyller, serialiserar och hämtar meddelandetyperna för begäran och svar.
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs: Innehåller de genererade klientklasserna.
Mer information om C#-tillgångarna som genereras automatiskt av Grpc.Toolsfinns i gRPC-tjänster med C#: Genererade C#-tillgångar.
- Uppdatera gRPC-klientens - Program.csfil med följande kod.- 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();
- I föregående markerade kod ersätter du portnumret localhost - 7042med det- HTTPSportnummer som anges i- Properties/launchSettings.jsoni- GrpcGreeter-tjänstprojektet.
              Program.cs innehåller startpunkten och logiken för gRPC-klienten.
Greeter-klienten skapas av:
- Instansiera en GrpcChannelsom innehåller information för att skapa anslutningen till gRPC-tjänsten.
- Använd GrpcChannelför att skapa Greeter-klienten:
// 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();
Greeter-klienten kallar på den asynkrona metoden SayHello. Resultatet av SayHello-anropet visas:
// 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();
Testa gRPC-klienten med gRPC Greeter-tjänsten
Uppdatera filen appsettings.Development.json genom att lägga till följande markerade rader:
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning",
      "Microsoft.AspNetCore.Hosting": "Information",
      "Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
    }
  }
}
- I GrpcGreeter-tjänstprojektet trycker du påCtrl+F5för att starta servern utan felsökningsprogrammet.
- I GrpcGreeterClient-konsolprojektet trycker du påCtrl+F5för att starta klienten utan felsökningsprogrammet.
Klienten skickar en hälsning till tjänsten med ett meddelande som innehåller dess namn, GreeterClient. Tjänsten skickar meddelandet "Hello GreeterClient" som ett svar. Svaret "Hello GreeterClient" visas i kommandotolken:
Greeting: Hello GreeterClient
Press any key to exit...
gRPC-tjänsten registrerar information om det lyckade anropet i loggarna som skrivs ut till kommandotolken.
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
Note
Koden i den här artikeln kräver ASP.NET Core HTTPS-utvecklingscertifikat för att skydda gRPC-tjänsten. Om .NET gRPC-klienten misslyckas med meddelandet The remote certificate is invalid according to the validation procedure. eller The SSL connection could not be established.är utvecklingscertifikatet inte är betrodd. Information om hur du åtgärdar det här problemet finns i Anropa en gRPC-tjänst med ett ej betrott/ogiltigt certifikat.
Nästa steg
Den här självstudien visar hur du skapar en .NET gRPC-klient och en ASP.NET Core gRPC-server. I slutet har du en gRPC-klient som kommunicerar med gRPC Greeter-tjänsten.
I den här handledningen:
- Skapa en gRPC-server.
- Skapa en gRPC-klient.
- Testa gRPC-klienten med gRPC Greeter-tjänsten.
Prerequisites
- Visual Studio 2022 med arbetsbelastningen ASP.NET och webbutveckling.   
Skapa en gRPC-tjänst
- Starta Visual Studio 2022 och välj Nytt projekt.
- I dialogrutan Skapa ett nytt projekt söker du efter gRPC. Välj ASP.NET Core gRPC Service och välj Nästa.
- I dialogrutan Konfigurera ditt nya projekt anger du GrpcGreeterför Projektnamn. Det är viktigt att namnge projektet GrpcGreeter så att namnrymderna matchar när du kopierar och klistrar in kod.
- Välj Nästa.
- I dialogrutan Ytterligare information väljer du .NET 8.0 (långsiktig support) och väljer sedan Skapa.
Kör tjänsten
- Tryck på Ctrl+F5 för att köra utan felsökningsprogrammet. - Visual Studio visar följande dialogruta när ett projekt ännu inte har konfigurerats för att använda SSL:   - Välj Ja om du litar på IIS Express SSL-certifikatet. - Följande dialogruta visas: - Dialogrutan  - Välj Ja om du samtycker till att lita på utvecklingscertifikatet. - Information om hur du litar på Webbläsaren Firefox finns i Firefox SEC_ERROR_INADEQUATE_KEY_USAGE certifikatfel. - Visual Studio: - Startar Kestrel server.
- Startar en webbläsare.
- Navigerar till http://localhost:port, till exempelhttp://localhost:7042.- port: Ett slumpmässigt tilldelat portnummer för appen.
- 
              localhost: Standardvärdnamnet för den lokala datorn. Localhost hanterar endast webbbegäranden från den lokala datorn.
 
 
Loggarna visar att tjänsten lyssnar på https://localhost:<port>, där <port> är det localhost-portnummer som tilldelas slumpmässigt när projektet skapas och sorteras i 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
Note
GRPC-mallen är konfigurerad för att använda Transport Layer Security (TLS). gRPC-klienter måste använda HTTPS för att anropa servern. Portnumret för gRPC-tjänsten localhost tilldelas slumpmässigt när projektet skapas och anges i Egenskaper\launchSettings.jspå fil i gRPC-tjänstprojektet.
Granska projektfilerna
GrpcGreeter projektfiler:
- 
              Protos/greet.proto: definierarGreetergRPC och används för att generera gRPC-servertillgångarna. Mer information finns i Introduktion till gRPC-.
- 
              Servicesmapp: Innehåller implementeringen avGreeter-tjänsten.
- 
              appSettings.json: Innehåller konfigurationsdata som det protokoll som används av Kestrel. Mer information finns i Configuration i ASP.NET Core.
- 
              Program.cs, som innehåller:- Startpunkten för gRPC-tjänsten. Mer information finns i .NET Generic Host i ASP.NET Core.
- Kod som konfigurerar appbeteende. Mer information finns i App-start.
 
Skapa gRPC-klienten i en .NET-konsolapp
- Öppna en andra instans av Visual Studio och välj Nytt projekt.
- I dialogrutan Skapa ett nytt projekt väljer du Konsolappoch väljer Nästa.
- I textrutan Projektnamn anger du GrpcGreeterClient och väljer Nästa.
- I dialogrutan Ytterligare information väljer du .NET 8.0 (långsiktig support) och väljer sedan Skapa.
Lägga till nödvändiga NuGet-paket
GRPC-klientprojektet kräver följande NuGet-paket:
- Grpc.Net.Client, som innehåller .NET-klienten.
- Google.Protobuf, som innehåller protobuf-meddelande-API:er för C#.
- 
              Grpc.Tools, som innehåller C#-verktygsstöd för protobuf-filer. Verktygspaketet krävs inte vid körningstid, så beroendet markeras med PrivateAssets="All".
Installera paketen med antingen Package Manager Console (PMC) eller Hantera NuGet-paket.
PMC-alternativ för att installera paket
- I Visual Studio väljer du Tools>NuGet Package Manager>Package Manager Console 
- Från fönstret Package Manager Console kör du - cd GrpcGreeterClientför att ändra kataloger till mappen som innehåller- GrpcGreeterClient.csproj-filerna.
- Kör följande kommandon: - Install-Package Grpc.Net.Client Install-Package Google.Protobuf Install-Package Grpc.Tools
Hantera NuGet-paket för att installera paket
- Högerklicka på projektet i Solution Explorer>Hantera NuGet-paket.
- Välj fliken Bläddra.
- Ange Grpc.Net.Client i sökrutan.
- Välj Grpc.Net.Client-paketet på fliken Bläddra och välj Installera.
- Upprepa för Google.ProtobufochGrpc.Tools.
Lägg till greet.proto
- Skapa en Protos- mapp i gRPC-klientprojektet. 
- Kopiera filen Protos\greet.proto från gRPC Greeter-tjänsten till mappen Protos i gRPC-klientprojektet. 
- Uppdatera namnområdet i filen - greet.prototill projektets namnområde:- option csharp_namespace = "GrpcGreeterClient";
- Redigera - GrpcGreeterClient.csproj-projektfilen:
Högerklicka på projektet och välj Redigera projektfil.
- Lägg till en objektgrupp med ett - <Protobuf>element som refererar till filen greet.proto:- <ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
Skapa Greeter-klienten
- Skapa klientprojektet för att skapa typerna i GrpcGreeterClientnamnområdet.
Note
De GrpcGreeterClient typerna genereras automatiskt av byggprocessen. Verktygspaketet Grpc.Tools genererar följande filer baserat på filen greet.proto:
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs: Den protokollbuffertkod som fyller, serialiserar och hämtar meddelandetyperna för begäran och svar.
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs: Innehåller de genererade klientklasserna.
Mer information om C#-tillgångarna som genereras automatiskt av Grpc.Toolsfinns i gRPC-tjänster med C#: Genererade C#-tillgångar.
- Uppdatera gRPC-klientens - Program.csfil med följande kod.- 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();
- I föregående markerade kod ersätter du portnumret localhost - 7042med det- HTTPSportnummer som anges i- Properties/launchSettings.jsoni- GrpcGreeter-tjänstprojektet.
              Program.cs innehåller startpunkten och logiken för gRPC-klienten.
Greeter-klienten skapas av:
- Instansiera en GrpcChannelsom innehåller information för att skapa anslutningen till gRPC-tjänsten.
- Använd GrpcChannelför att skapa Greeter-klienten:
// 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();
Greeter-klienten kallar på den asynkrona metoden SayHello. Resultatet av SayHello-anropet visas:
// 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();
Testa gRPC-klienten med gRPC Greeter-tjänsten
Uppdatera filen appsettings.Development.json genom att lägga till följande markerade rader:
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
      ,"Microsoft.AspNetCore.Hosting": "Information",
      "Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
    }
  }
}
- I greeter-tjänsten trycker du på Ctrl+F5för att starta servern utan felsökningsprogrammet.
- I GrpcGreeterClient-projektet trycker du påCtrl+F5för att starta klienten utan felsökningsprogrammet.
Klienten skickar en hälsning till tjänsten med ett meddelande som innehåller dess namn, GreeterClient. Tjänsten skickar meddelandet "Hello GreeterClient" som ett svar. Svaret "Hello GreeterClient" visas i kommandotolken:
Greeting: Hello GreeterClient
Press any key to exit...
gRPC-tjänsten registrerar information om det lyckade anropet i loggarna som skrivs ut till kommandotolken.
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
Note
Koden i den här artikeln kräver ASP.NET Core HTTPS-utvecklingscertifikat för att skydda gRPC-tjänsten. Om .NET gRPC-klienten misslyckas med meddelandet The remote certificate is invalid according to the validation procedure. eller The SSL connection could not be established.är utvecklingscertifikatet inte är betrodd. Information om hur du åtgärdar det här problemet finns i Anropa en gRPC-tjänst med ett ej betrott/ogiltigt certifikat.
Nästa steg
Den här självstudien visar hur du skapar en .NET gRPC-klient och en ASP.NET Core gRPC-server. I slutet har du en gRPC-klient som kommunicerar med gRPC Greeter-tjänsten.
I den här handledningen:
- Skapa en gRPC-server.
- Skapa en gRPC-klient.
- Testa gRPC-klienten med gRPC Greeter-tjänsten.
Prerequisites
- Visual Studio 2022 med arbetsbelastningen ASP.NET och webbutveckling.   
Skapa en gRPC-tjänst
- Starta Visual Studio 2022 och välj Skapa ett nytt projekt.
- I dialogrutan Skapa ett nytt projekt söker du efter gRPC. Välj ASP.NET Core gRPC Service och välj Nästa.
- I dialogrutan Konfigurera ditt nya projekt anger du GrpcGreeterför Projektnamn. Det är viktigt att namnge projektet GrpcGreeter så att namnrymderna matchar när du kopierar och klistrar in kod.
- Välj Nästa.
- I dialogrutan Ytterligare information väljer du .NET 6.0 (långsiktigt stöd) och sedan Skapa.
Kör tjänsten
- Tryck på Ctrl+F5 för att köra utan felsökningsprogrammet. - Visual Studio visar följande dialogruta när ett projekt ännu inte har konfigurerats för att använda SSL:   - Välj Ja om du litar på IIS Express SSL-certifikatet. - Följande dialogruta visas: - Dialogrutan  - Välj Ja om du samtycker till att lita på utvecklingscertifikatet. - Information om hur du litar på Webbläsaren Firefox finns i Firefox SEC_ERROR_INADEQUATE_KEY_USAGE certifikatfel. - Visual Studio: - Startar Kestrel server.
- Startar en webbläsare.
- Navigerar till http://localhost:port, till exempelhttp://localhost:7042.- port: Ett slumpmässigt tilldelat portnummer för appen.
- 
              localhost: Standardvärdnamnet för den lokala datorn. Localhost hanterar endast webbbegäranden från den lokala datorn.
 
 
Loggarna visar att tjänsten lyssnar på https://localhost:<port>, där <port> är det localhost-portnummer som tilldelas slumpmässigt när projektet skapas och sorteras i 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
Note
GRPC-mallen är konfigurerad för att använda Transport Layer Security (TLS). gRPC-klienter måste använda HTTPS för att anropa servern. Portnumret för gRPC-tjänsten localhost tilldelas slumpmässigt när projektet skapas och anges i Egenskaper\launchSettings.jspå fil i gRPC-tjänstprojektet.
macOS stöder inte ASP.NET Core gRPC med TLS. Ytterligare konfiguration krävs för att köra gRPC-tjänster på macOS. Mer information finns i Det går inte att starta ASP.NET Core gRPC-appen på macOS-.
Granska projektfilerna
GrpcGreeter projektfiler:
- 
              Protos/greet.proto: definierarGreetergRPC och används för att generera gRPC-servertillgångarna. Mer information finns i Introduktion till gRPC-.
- 
              Servicesmapp: Innehåller implementeringen avGreeter-tjänsten.
- 
              appSettings.json: Innehåller konfigurationsdata som det protokoll som används av Kestrel. Mer information finns i Configuration i ASP.NET Core.
- 
              Program.cs, som innehåller:- Startpunkten för gRPC-tjänsten. Mer information finns i .NET Generic Host i ASP.NET Core.
- Kod som konfigurerar appbeteende. Mer information finns i App-start.
 
Skapa gRPC-klienten i en .NET-konsolapp
- Öppna en andra instans av Visual Studio och välj Skapa ett nytt projekt.
- I dialogrutan Skapa ett nytt projekt väljer du Konsolprogramoch väljer Nästa.
- I textrutan Projektnamn anger du GrpcGreeterClient och väljer Nästa.
- I dialogrutan Ytterligare information väljer du .NET 6.0 (långsiktigt stöd) och sedan Skapa.
Lägga till nödvändiga NuGet-paket
GRPC-klientprojektet kräver följande NuGet-paket:
- Grpc.Net.Client, som innehåller .NET-klienten.
- Google.Protobuf, som innehåller protobuf-meddelande-API:er för C#.
- 
              Grpc.Tools, som innehåller C#-verktygsstöd för protobuf-filer. Verktygspaketet krävs inte vid körningstid, så beroendet markeras med PrivateAssets="All".
Installera paketen med antingen Package Manager Console (PMC) eller Hantera NuGet-paket.
PMC-alternativ för att installera paket
- I Visual Studio väljer du Tools>NuGet Package Manager>Package Manager Console 
- Från fönstret Package Manager Console kör du - cd GrpcGreeterClientför att ändra kataloger till mappen som innehåller- GrpcGreeterClient.csproj-filerna.
- Kör följande kommandon: - Install-Package Grpc.Net.Client Install-Package Google.Protobuf Install-Package Grpc.Tools
Hantera NuGet-paket för att installera paket
- Högerklicka på projektet i Solution Explorer>Hantera NuGet-paket.
- Välj fliken Bläddra.
- Ange Grpc.Net.Client i sökrutan.
- Välj Grpc.Net.Client-paketet på fliken Bläddra och välj Installera.
- Upprepa för Google.ProtobufochGrpc.Tools.
Lägg till greet.proto
- Skapa en Protos- mapp i gRPC-klientprojektet. 
- Kopiera filen Protos\greet.proto från gRPC Greeter-tjänsten till mappen Protos i gRPC-klientprojektet. 
- Uppdatera namnområdet i filen - greet.prototill projektets namnområde:- option csharp_namespace = "GrpcGreeterClient";
- Redigera - GrpcGreeterClient.csproj-projektfilen:
Högerklicka på projektet och välj Redigera projektfil.
- Lägg till en objektgrupp med ett - <Protobuf>element som refererar till filen greet.proto:- <ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
Skapa Greeter-klienten
- Skapa klientprojektet för att skapa typerna i GrpcGreeterClientnamnområdet.
Note
De GrpcGreeterClient typerna genereras automatiskt av byggprocessen. Verktygspaketet Grpc.Tools genererar följande filer baserat på filen greet.proto:
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs: Den protokollbuffertkod som fyller, serialiserar och hämtar meddelandetyperna för begäran och svar.
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs: Innehåller de genererade klientklasserna.
Mer information om C#-tillgångarna som genereras automatiskt av Grpc.Toolsfinns i gRPC-tjänster med C#: Genererade C#-tillgångar.
- Uppdatera gRPC-klientens - Program.csfil med följande kod.- 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();
- I föregående markerade kod ersätter du portnumret localhost - 7042med det- HTTPSportnummer som anges i- Properties/launchSettings.jsoni- GrpcGreeter-tjänstprojektet.
              Program.cs innehåller startpunkten och logiken för gRPC-klienten.
Greeter-klienten skapas av:
- Instansiera en GrpcChannelsom innehåller information för att skapa anslutningen till gRPC-tjänsten.
- Använd GrpcChannelför att skapa Greeter-klienten:
// 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();
Greeter-klienten kallar på den asynkrona metoden SayHello. Resultatet av SayHello-anropet visas:
// 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();
Testa gRPC-klienten med gRPC Greeter-tjänsten
Uppdatera filen appsettings.Development.json genom att lägga till följande markerade rader:
{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
      ,"Microsoft.AspNetCore.Hosting": "Information",
      "Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
    }
  }
}
- I greeter-tjänsten trycker du på Ctrl+F5för att starta servern utan felsökningsprogrammet.
- I GrpcGreeterClient-projektet trycker du påCtrl+F5för att starta klienten utan felsökningsprogrammet.
Klienten skickar en hälsning till tjänsten med ett meddelande som innehåller dess namn, GreeterClient. Tjänsten skickar meddelandet "Hello GreeterClient" som ett svar. Svaret "Hello GreeterClient" visas i kommandotolken:
Greeting: Hello GreeterClient
Press any key to exit...
gRPC-tjänsten registrerar information om det lyckade anropet i loggarna som skrivs ut till kommandotolken.
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
Note
Koden i den här artikeln kräver ASP.NET Core HTTPS-utvecklingscertifikat för att skydda gRPC-tjänsten. Om .NET gRPC-klienten misslyckas med meddelandet The remote certificate is invalid according to the validation procedure. eller The SSL connection could not be established.är utvecklingscertifikatet inte är betrodd. Information om hur du åtgärdar det här problemet finns i Anropa en gRPC-tjänst med ett ej betrott/ogiltigt certifikat.
Nästa steg
Den här självstudien visar hur du skapar en .NET gRPC-klient och en ASP.NET Core gRPC-server. I slutet har du en gRPC-klient som kommunicerar med gRPC Greeter-tjänsten.
I den här handledningen:
- Skapa en gRPC-server.
- Skapa en gRPC-klient.
- Testa gRPC-klienten med gRPC Greeter-tjänsten.
Prerequisites
- Visual Studio 2022 med arbetsbelastningen ASP.NET och webbutveckling.
- .NET 6 SDK
Skapa en gRPC-tjänst
- Starta Visual Studio 2022 och välj Skapa ett nytt projekt.
- I dialogrutan Skapa ett nytt projekt söker du efter gRPC. Välj ASP.NET Core gRPC Service och välj Nästa.
- I dialogrutan Konfigurera ditt nya projekt anger du GrpcGreeterför Projektnamn. Det är viktigt att namnge projektet GrpcGreeter så att namnrymderna matchar när du kopierar och klistrar in kod.
- Välj Nästa.
- I dialogrutan Ytterligare information väljer du .NET 6.0 (långsiktigt stöd) och sedan Skapa.
Kör tjänsten
- Tryck på Ctrl+F5 för att köra utan felsökningsprogrammet. - Visual Studio visar följande dialogruta när ett projekt ännu inte har konfigurerats för att använda SSL:   - Välj Ja om du litar på IIS Express SSL-certifikatet. - Följande dialogruta visas: - Dialogrutan  - Välj Ja om du samtycker till att lita på utvecklingscertifikatet. - Information om hur du litar på Webbläsaren Firefox finns i Firefox SEC_ERROR_INADEQUATE_KEY_USAGE certifikatfel. - Visual Studio: - Startar Kestrel server.
- Startar en webbläsare.
- Navigerar till http://localhost:port, till exempelhttp://localhost:7042.- port: Ett slumpmässigt tilldelat portnummer för appen.
- 
              localhost: Standardvärdnamnet för den lokala datorn. Localhost hanterar endast webbbegäranden från den lokala datorn.
 
 
Loggarna visar att tjänsten lyssnar på https://localhost:<port>, där <port> är det localhost-portnummer som tilldelas slumpmässigt när projektet skapas och sorteras i 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
Note
GRPC-mallen är konfigurerad för att använda Transport Layer Security (TLS). gRPC-klienter måste använda HTTPS för att anropa servern. Portnumret för gRPC-tjänsten localhost tilldelas slumpmässigt när projektet skapas och anges i Egenskaper\launchSettings.jspå fil i gRPC-tjänstprojektet.
macOS stöder inte ASP.NET Core gRPC med TLS. Ytterligare konfiguration krävs för att köra gRPC-tjänster på macOS. Mer information finns i Det går inte att starta ASP.NET Core gRPC-appen på macOS-.
Granska projektfilerna
GrpcGreeter projektfiler:
- 
              Protos/greet.proto: definierarGreetergRPC och används för att generera gRPC-servertillgångarna. Mer information finns i Introduktion till gRPC-.
- 
              Servicesmapp: Innehåller implementeringen avGreeter-tjänsten.
- 
              appSettings.json: Innehåller konfigurationsdata som det protokoll som används av Kestrel. Mer information finns i Configuration i ASP.NET Core.
- 
              Program.cs, som innehåller:- Startpunkten för gRPC-tjänsten. Mer information finns i .NET Generic Host i ASP.NET Core.
- Kod som konfigurerar appbeteende. Mer information finns i App-start.
 
Skapa gRPC-klienten i en .NET-konsolapp
- Öppna en andra instans av Visual Studio och välj Skapa ett nytt projekt.
- I dialogrutan Skapa ett nytt projekt väljer du Konsolprogramoch väljer Nästa.
- I textrutan Projektnamn anger du GrpcGreeterClient och väljer Nästa.
- I dialogrutan Ytterligare information väljer du .NET 6.0 (långsiktigt stöd) och sedan Skapa.
Lägga till nödvändiga NuGet-paket
GRPC-klientprojektet kräver följande NuGet-paket:
- Grpc.Net.Client, som innehåller .NET-klienten.
- Google.Protobuf, som innehåller protobuf-meddelande-API:er för C#.
- 
              Grpc.Tools, som innehåller C#-verktygsstöd för protobuf-filer. Verktygspaketet krävs inte vid körningstid, så beroendet markeras med PrivateAssets="All".
Installera paketen med antingen Package Manager Console (PMC) eller Hantera NuGet-paket.
PMC-alternativ för att installera paket
- I Visual Studio väljer du Tools>NuGet Package Manager>Package Manager Console 
- Från fönstret Package Manager Console kör du - cd GrpcGreeterClientför att ändra kataloger till mappen som innehåller- GrpcGreeterClient.csproj-filerna.
- Kör följande kommandon: - Install-Package Grpc.Net.Client Install-Package Google.Protobuf Install-Package Grpc.Tools
Hantera NuGet-paket för att installera paket
- Högerklicka på projektet i Solution Explorer>Hantera NuGet-paket.
- Välj fliken Bläddra.
- Ange Grpc.Net.Client i sökrutan.
- Välj Grpc.Net.Client-paketet på fliken Bläddra och välj Installera.
- Upprepa för Google.ProtobufochGrpc.Tools.
Lägg till greet.proto
- Skapa en Protos- mapp i gRPC-klientprojektet. 
- Kopiera filen Protos\greet.proto från gRPC Greeter-tjänsten till mappen Protos i gRPC-klientprojektet. 
- Uppdatera namnområdet i filen - greet.prototill projektets namnområde:- option csharp_namespace = "GrpcGreeterClient";
- Redigera - GrpcGreeterClient.csproj-projektfilen:
Högerklicka på projektet och välj Redigera projektfil.
- Lägg till en objektgrupp med ett - <Protobuf>element som refererar till filen greet.proto:- <ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
Skapa Greeter-klienten
- Skapa klientprojektet för att skapa typerna i GrpcGreeterClientnamnområdet.
Note
De GrpcGreeterClient typerna genereras automatiskt av byggprocessen. Verktygspaketet Grpc.Tools genererar följande filer baserat på filen greet.proto:
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs: Den protokollbuffertkod som fyller, serialiserar och hämtar meddelandetyperna för begäran och svar.
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs: Innehåller de genererade klientklasserna.
Mer information om C#-tillgångarna som genereras automatiskt av Grpc.Toolsfinns i gRPC-tjänster med C#: Genererade C#-tillgångar.
- Uppdatera gRPC-klientens - Program.csfil med följande kod.- 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();
- I föregående markerade kod ersätter du portnumret localhost - 7042med det- HTTPSportnummer som anges i- Properties/launchSettings.jsoni- GrpcGreeter-tjänstprojektet.
              Program.cs innehåller startpunkten och logiken för gRPC-klienten.
Greeter-klienten skapas av:
- Instansiera en GrpcChannelsom innehåller information för att skapa anslutningen till gRPC-tjänsten.
- Använd GrpcChannelför att skapa Greeter-klienten:
// 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();
Greeter-klienten kallar på den asynkrona metoden SayHello. Resultatet av SayHello-anropet visas:
// 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();
Testa gRPC-klienten med gRPC Greeter-tjänsten
- I greeter-tjänsten trycker du på Ctrl+F5för att starta servern utan felsökningsprogrammet.
- I GrpcGreeterClient-projektet trycker du påCtrl+F5för att starta klienten utan felsökningsprogrammet.
Klienten skickar en hälsning till tjänsten med ett meddelande som innehåller dess namn, GreeterClient. Tjänsten skickar meddelandet "Hello GreeterClient" som ett svar. Svaret "Hello GreeterClient" visas i kommandotolken:
Greeting: Hello GreeterClient
Press any key to exit...
gRPC-tjänsten registrerar information om det lyckade anropet i loggarna som skrivs ut till kommandotolken.
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
Uppdatera filen appsettings.Development.json genom att lägga till följande rader:
"Microsoft.AspNetCore.Hosting": "Information",
"Microsoft.AspNetCore.Routing.EndpointMiddleware": "Information"
Note
Koden i den här artikeln kräver ASP.NET Core HTTPS-utvecklingscertifikat för att skydda gRPC-tjänsten. Om .NET gRPC-klienten misslyckas med meddelandet The remote certificate is invalid according to the validation procedure. eller The SSL connection could not be established.är utvecklingscertifikatet inte är betrodd. Information om hur du åtgärdar det här problemet finns i Anropa en gRPC-tjänst med ett ej betrott/ogiltigt certifikat.
Nästa steg
Den här självstudien visar hur du skapar en .NET gRPC-klient och en ASP.NET Core gRPC-server.
I slutet har du en gRPC-klient som kommunicerar med gRPC Greeter-tjänsten.
Visa eller ladda ned exempelkod (hur du laddar ned).
I den här handledningen:
- Skapa en gRPC-server.
- Skapa en gRPC-klient.
- Testa gRPC-klienten med gRPC Greeter-tjänsten.
Prerequisites
- Visual Studio 2019 16.8 eller senare med arbetsbelastning för ASP.NET och webbutveckling
- .NET 5 SDK
Skapa en gRPC-tjänst
- Starta Visual Studio och välj Skapa ett nytt projekt.
- I dialogrutan Skapa ett nytt projekt väljer du gRPC Service och väljer Nästa.
- I dialogrutan Konfigurera ditt nya projekt anger du GrpcGreeterför Projektnamn. Det är viktigt att namnge projektet GrpcGreeter så att namnrymderna matchar när du kopierar och klistrar in kod.
- Välj Nästa.
- I dialogrutan Ytterligare information väljer du .NET 5.0 i listrutan Target Framework.
- Välj Skapa.
Kör tjänsten
- Tryck på Ctrl+F5 för att köra utan felsökningsprogrammet. - Visual Studio visar följande dialogruta när ett projekt ännu inte har konfigurerats för att använda SSL:   - Välj Ja om du litar på IIS Express SSL-certifikatet. - Följande dialogruta visas: - Dialogrutan  - Välj Ja om du samtycker till att lita på utvecklingscertifikatet. - Information om hur du litar på Webbläsaren Firefox finns i Firefox SEC_ERROR_INADEQUATE_KEY_USAGE certifikatfel. - Visual Studio startar IIS Express och kör appen. Adressfältet visar - localhost:port#och inte något som liknar- example.com. Det beror på att- localhostär standardvärdnamnet för den lokala datorn. Localhost hanterar endast webbbegäranden från den lokala datorn. När Visual Studio skapar ett webbprojekt används en slumpmässig port för webbservern.
Tjänsten visar att loggarna lyssnar på 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
Note
GRPC-mallen är konfigurerad för att använda Transport Layer Security (TLS). gRPC-klienter måste använda HTTPS för att anropa servern.
macOS stöder inte ASP.NET Core gRPC med TLS. Ytterligare konfiguration krävs för att köra gRPC-tjänster på macOS. Mer information finns i Det går inte att starta ASP.NET Core gRPC-appen på macOS-.
Granska projektfilerna
GrpcGreeter projektfiler:
- 
              greet.proto: Filen Protos/greet.proto definierar GreetergRPC och används för att generera gRPC-servertillgångarna. Mer information finns i Introduktion till gRPC-.
- 
              Services mapp: Innehåller implementeringen av Greeter-tjänsten.
- 
              appsettings.json: Innehåller konfigurationsdata, till exempel protokoll som används av Kestrel. Mer information finns i Configuration i ASP.NET Core.
- 
              Program.cs: Innehåller startpunkten för gRPC-tjänsten. Mer information finns i .NET Generic Host i ASP.NET Core.
- 
              Startup.cs: Innehåller kod som konfigurerar appbeteende. Mer information finns i App-start.
Skapa gRPC-klienten i en .NET-konsolapp
- Öppna en andra instans av Visual Studio och välj Skapa ett nytt projekt.
- I dialogrutan Skapa ett nytt projekt väljer du Konsolapp (.NET) och sedan Nästa.
- I textrutan Projektnamn anger du GrpcGreeterClient och väljer Skapa.
Lägga till nödvändiga paket
GRPC-klientprojektet kräver följande paket:
- Grpc.Net.Client, som innehåller .NET-klienten.
- Google.Protobuf, som innehåller protobuf-meddelande-API:er för C#.
- 
              Grpc.Tools, som innehåller C#-verktygsstöd för protobuf-filer. Verktygspaketet krävs inte vid körningstid, så beroendet markeras med PrivateAssets="All".
Installera paketen med antingen Package Manager Console (PMC) eller Hantera NuGet-paket.
PMC-alternativ för att installera paket
- I Visual Studio väljer du Tools>NuGet Package Manager>Package Manager Console 
- Från fönstret Package Manager Console kör du - cd GrpcGreeterClientför att ändra kataloger till mappen som innehåller- GrpcGreeterClient.csproj-filerna.
- Kör följande kommandon: - Install-Package Grpc.Net.Client Install-Package Google.Protobuf Install-Package Grpc.Tools
Hantera NuGet-paket för att installera paket
- Högerklicka på projektet i Solution Explorer>Hantera NuGet-paket.
- Välj fliken Bläddra.
- Ange Grpc.Net.Client i sökrutan.
- Välj Grpc.Net.Client-paketet på fliken Bläddra och välj Installera.
- Upprepa för Google.ProtobufochGrpc.Tools.
Lägg till greet.proto
- Skapa en Protos- mapp i gRPC-klientprojektet. 
- Kopiera filen Protos\greet.proto från gRPC Greeter-tjänsten till mappen Protos i gRPC-klientprojektet. 
- Uppdatera namnområdet i filen - greet.prototill projektets namnområde:- option csharp_namespace = "GrpcGreeterClient";
- Redigera - GrpcGreeterClient.csproj-projektfilen:- Högerklicka på projektet och välj Redigera projektfil. 
- Lägg till en objektgrupp med ett - <Protobuf>element som refererar till filen greet.proto:- <ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
Skapa Greeter-klienten
- Skapa klientprojektet för att skapa typerna i GrpcGreeterClientnamnområdet.
Note
De GrpcGreeterClient typerna genereras automatiskt av byggprocessen. Verktygspaketet Grpc.Tools genererar följande filer baserat på filen greet.proto:
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs: Den protokollbuffertkod som fyller, serialiserar och hämtar meddelandetyperna för begäran och svar.
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs: Innehåller de genererade klientklasserna.
Mer information om C#-tillgångarna som genereras automatiskt av Grpc.Toolsfinns i gRPC-tjänster med C#: Genererade C#-tillgångar.
- Uppdatera gRPC-klientens - Program.csfil med följande kod:- 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 innehåller startpunkten och logiken för gRPC-klienten.
Greeter-klienten skapas av:
- Instansiera en GrpcChannelsom innehåller information för att skapa anslutningen till gRPC-tjänsten.
- Använd GrpcChannelför att skapa Greeter-klienten:
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();
}
Greeter-klienten kallar på den asynkrona metoden SayHello. Resultatet av SayHello-anropet visas:
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();
}
Testa gRPC-klienten med gRPC Greeter-tjänsten
- I greeter-tjänsten trycker du på Ctrl+F5för att starta servern utan felsökningsprogrammet.
- I GrpcGreeterClient-projektet trycker du påCtrl+F5för att starta klienten utan felsökningsprogrammet.
Klienten skickar en hälsning till tjänsten med ett meddelande som innehåller dess namn, GreeterClient. Tjänsten skickar meddelandet "Hello GreeterClient" som ett svar. Svaret "Hello GreeterClient" visas i kommandotolken:
Greeting: Hello GreeterClient
Press any key to exit...
gRPC-tjänsten registrerar information om det lyckade anropet i loggarna som skrivs ut till kommandotolken.
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
Note
Koden i den här artikeln kräver ASP.NET Core HTTPS-utvecklingscertifikat för att skydda gRPC-tjänsten. Om .NET gRPC-klienten misslyckas med meddelandet The remote certificate is invalid according to the validation procedure. eller The SSL connection could not be established.är utvecklingscertifikatet inte är betrodd. Information om hur du åtgärdar det här problemet finns i Anropa en gRPC-tjänst med ett ej betrott/ogiltigt certifikat.
Nästa steg
Den här handledningen visar hur du skapar en .NET Core gRPC klient och en ASP.NET Core gRPC server.
I slutet har du en gRPC-klient som kommunicerar med gRPC Greeter-tjänsten.
Visa eller ladda ned exempelkod (hur du laddar ned).
I den här handledningen:
- Skapa en gRPC-server.
- Skapa en gRPC-klient.
- Testa gRPC-klienten med gRPC Greeter-tjänsten.
Prerequisites
- Visual Studio 2019 16.4 eller senare med ASP.NET och webbutvecklingsarbetsbelastning
- .NET Core 3.1 SDK
Skapa en gRPC-tjänst
- Starta Visual Studio och välj Skapa ett nytt projekt. Alternativt, på Visual Studio Arkiv menyn, välj Nytt>Projekt. 
- I dialogrutan Skapa ett nytt projekt väljer du gRPC Service och väljer Nästa:   
- Ge projektet namnet GrpcGreeter. Det är viktigt att namnge projektet GrpcGreeter så att namnrymderna matchar när du kopierar och klistrar in kod. 
- Välj Skapa. 
- I dialogrutan Skapa en ny gRPC-tjänst: - Mallen gRPC Service är markerad.
- Välj Skapa.
 
Kör tjänsten
- Tryck på Ctrl+F5 för att köra utan felsökningsprogrammet. - Visual Studio visar följande dialogruta när ett projekt ännu inte har konfigurerats för att använda SSL:   - Välj Ja om du litar på IIS Express SSL-certifikatet. - Följande dialogruta visas: - Dialogrutan  - Välj Ja om du samtycker till att lita på utvecklingscertifikatet. - Information om hur du litar på Webbläsaren Firefox finns i Firefox SEC_ERROR_INADEQUATE_KEY_USAGE certifikatfel. - Visual Studio startar IIS Express och kör appen. Adressfältet visar - localhost:port#och inte något som liknar- example.com. Det beror på att- localhostär standardvärdnamnet för den lokala datorn. Localhost hanterar endast webbbegäranden från den lokala datorn. När Visual Studio skapar ett webbprojekt används en slumpmässig port för webbservern.
Tjänsten visar att loggarna lyssnar på 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
Note
GRPC-mallen är konfigurerad för att använda Transport Layer Security (TLS). gRPC-klienter måste använda HTTPS för att anropa servern.
macOS stöder inte ASP.NET Core gRPC med TLS. Ytterligare konfiguration krävs för att köra gRPC-tjänster på macOS. Mer information finns i Det går inte att starta ASP.NET Core gRPC-appen på macOS-.
Granska projektfilerna
GrpcGreeter projektfiler:
- 
              greet.proto: Filen Protos/greet.proto definierar GreetergRPC och används för att generera gRPC-servertillgångarna. Mer information finns i Introduktion till gRPC-.
- 
              Services mapp: Innehåller implementeringen av Greeter-tjänsten.
- 
              appsettings.json: Innehåller konfigurationsdata, till exempel protokoll som används av Kestrel. Mer information finns i Configuration i ASP.NET Core.
- 
              Program.cs: Innehåller startpunkten för gRPC-tjänsten. Mer information finns i .NET Generic Host i ASP.NET Core.
- 
              Startup.cs: Innehåller kod som konfigurerar appbeteende. Mer information finns i App-start.
Skapa gRPC-klienten i en .NET-konsolapp
- Öppna en andra instans av Visual Studio och välj Skapa ett nytt projekt.
- I dialogrutan Skapa ett nytt projekt väljer du Console App (.NET Core) och väljer Nästa.
- I textrutan Projektnamn anger du GrpcGreeterClient och väljer Skapa.
Lägga till nödvändiga paket
GRPC-klientprojektet kräver följande paket:
- Grpc.Net.Client, som innehåller .NET Core-klienten.
- Google.Protobuf, som innehåller protobuf-meddelande-API:er för C#.
- 
              Grpc.Tools, som innehåller C#-verktygsstöd för protobuf-filer. Verktygspaketet krävs inte vid körningstid, så beroendet markeras med PrivateAssets="All".
Installera paketen med antingen Package Manager Console (PMC) eller Hantera NuGet-paket.
PMC-alternativ för att installera paket
- I Visual Studio väljer du Tools>NuGet Package Manager>Package Manager Console 
- Från fönstret Package Manager Console kör du - cd GrpcGreeterClientför att ändra kataloger till mappen som innehåller- GrpcGreeterClient.csproj-filerna.
- Kör följande kommandon: - Install-Package Grpc.Net.Client Install-Package Google.Protobuf Install-Package Grpc.Tools
Hantera NuGet-paket för att installera paket
- Högerklicka på projektet i Solution Explorer>Hantera NuGet-paket.
- Välj fliken Bläddra.
- Ange Grpc.Net.Client i sökrutan.
- Välj Grpc.Net.Client-paketet på fliken Bläddra och välj Installera.
- Upprepa för Google.ProtobufochGrpc.Tools.
Lägg till greet.proto
- Skapa en Protos- mapp i gRPC-klientprojektet. 
- Kopiera filen Protos\greet.proto från gRPC Greeter-tjänsten till mappen Protos i gRPC-klientprojektet. 
- Uppdatera namnområdet i filen - greet.prototill projektets namnområde:- option csharp_namespace = "GrpcGreeterClient";
- Redigera - GrpcGreeterClient.csproj-projektfilen:- Högerklicka på projektet och välj Redigera projektfil. 
- Lägg till en objektgrupp med ett - <Protobuf>element som refererar till filen greet.proto:- <ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
Skapa Greeter-klienten
- Skapa klientprojektet för att skapa typerna i GrpcGreeterClientnamnområdet.
Note
De GrpcGreeterClient typerna genereras automatiskt av byggprocessen. Verktygspaketet Grpc.Tools genererar följande filer baserat på filen greet.proto:
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\Greet.cs: Den protokollbuffertkod som fyller, serialiserar och hämtar meddelandetyperna för begäran och svar.
- 
              GrpcGreeterClient\obj\Debug\[TARGET_FRAMEWORK]\Protos\GreetGrpc.cs: Innehåller de genererade klientklasserna.
Mer information om C#-tillgångarna som genereras automatiskt av Grpc.Toolsfinns i gRPC-tjänster med C#: Genererade C#-tillgångar.
Uppdatera gRPC-klientens Program.cs fil med följande kod:
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 innehåller startpunkten och logiken för gRPC-klienten.
Greeter-klienten skapas av:
- Instansiera en GrpcChannelsom innehåller information för att skapa anslutningen till gRPC-tjänsten.
- Använd GrpcChannelför att skapa Greeter-klienten:
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();
}
Greeter-klienten kallar på den asynkrona metoden SayHello. Resultatet av SayHello-anropet visas:
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();
}
Testa gRPC-klienten med gRPC Greeter-tjänsten
- I greeter-tjänsten trycker du på Ctrl+F5för att starta servern utan felsökningsprogrammet.
- I GrpcGreeterClient-projektet trycker du påCtrl+F5för att starta klienten utan felsökningsprogrammet.
Klienten skickar en hälsning till tjänsten med ett meddelande som innehåller dess namn, GreeterClient. Tjänsten skickar meddelandet "Hello GreeterClient" som ett svar. Svaret "Hello GreeterClient" visas i kommandotolken:
Greeting: Hello GreeterClient
Press any key to exit...
gRPC-tjänsten registrerar information om det lyckade anropet i loggarna som skrivs ut till kommandotolken.
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
Note
Koden i den här artikeln kräver ASP.NET Core HTTPS-utvecklingscertifikat för att skydda gRPC-tjänsten. Om .NET gRPC-klienten misslyckas med meddelandet The remote certificate is invalid according to the validation procedure. eller The SSL connection could not be established.är utvecklingscertifikatet inte är betrodd. Information om hur du åtgärdar det här problemet finns i Anropa en gRPC-tjänst med ett ej betrott/ogiltigt certifikat.
Nästa steg
ASP.NET Core
 
              
            
