Program.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using GrpcService1.Services;
  2. using Microsoft.OpenApi.Models;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using Microsoft.AspNetCore.Server.Kestrel.Core;
  5. namespace GrpcService1
  6. {
  7. public class Program
  8. {
  9. public static void Main(string[] args)
  10. {
  11. var builder = WebApplication.CreateBuilder(args);
  12. builder.Services.AddGrpc().AddJsonTranscoding();
  13. builder.Services.AddGrpcSwagger();
  14. builder.Services.AddSwaggerGen(c =>
  15. {
  16. c.SwaggerDoc("v1",
  17. new OpenApiInfo { Title = "gRPC transcoding", Version = "v1" });
  18. //var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
  19. //var xmlPath = Path.Combine(basePath, $"{AppDomain.CurrentDomain.FriendlyName}.xml");//Controller xml
  20. //c.IncludeXmlComments(xmlPath, true);
  21. //c.IncludeGrpcXmlComments(xmlPath, true);
  22. var filePath = Path.Combine(System.AppContext.BaseDirectory, "GrpcService1.xml");
  23. c.IncludeXmlComments(filePath);
  24. c.IncludeGrpcXmlComments(filePath, includeControllerXmlComments: true);
  25. });
  26. builder.WebHost.ConfigureKestrel(options =>
  27. {
  28. options.ListenAnyIP(5000, listenOptions =>
  29. {
  30. listenOptions.Protocols = HttpProtocols.Http1AndHttp2;
  31. });
  32. });
  33. var app = builder.Build();
  34. app.UseSwagger();
  35. if (app.Environment.IsDevelopment())
  36. {
  37. app.UseSwaggerUI(c =>
  38. {
  39. c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
  40. });
  41. }
  42. app.MapGrpcService<GreeterService>();
  43. app.MapGet("/", () => "Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");
  44. app.Run();
  45. }
  46. }
  47. }