add grpc factory
This commit is contained in:
parent
646f7121b4
commit
b67a487f2c
@ -1,15 +1,14 @@
|
|||||||
using Grpc.Core;
|
using Grpc.Core;
|
||||||
using Grpc.Core.Interceptors;
|
using Grpc.Core.Interceptors;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastructure
|
namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastructure
|
||||||
{
|
{
|
||||||
public class Http2SupportGrpcInterceptor : Interceptor
|
public class GrpcExceptionInterceptor : Interceptor
|
||||||
{
|
{
|
||||||
private readonly ILogger<Http2SupportGrpcInterceptor> _logger;
|
private readonly ILogger<GrpcExceptionInterceptor> _logger;
|
||||||
|
|
||||||
public Http2SupportGrpcInterceptor(ILogger<Http2SupportGrpcInterceptor> logger)
|
public GrpcExceptionInterceptor(ILogger<GrpcExceptionInterceptor> logger)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
@ -19,10 +18,7 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastruct
|
|||||||
ClientInterceptorContext<TRequest, TResponse> context,
|
ClientInterceptorContext<TRequest, TResponse> context,
|
||||||
AsyncUnaryCallContinuation<TRequest, TResponse> continuation)
|
AsyncUnaryCallContinuation<TRequest, TResponse> continuation)
|
||||||
{
|
{
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
|
_logger.LogInformation("Calling via grpc client base address serviceName={@ServiceName}, BaseAddress={@Host}", context.Method.ServiceName, context.Host);
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true);
|
|
||||||
|
|
||||||
_logger.LogInformation("Calling via grpc client base address serviceName ={@ServiceName}, BaseAddress={@Host} ", context.Method.ServiceName, context.Host);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -33,11 +29,6 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Infrastruct
|
|||||||
_logger.LogError("Error calling via grpc: {Status} - {Message}", e.Status, e.Message);
|
_logger.LogError("Error calling via grpc: {Status} - {Message}", e.Status, e.Message);
|
||||||
return default;
|
return default;
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false);
|
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -20,6 +20,7 @@
|
|||||||
<PackageReference Include="Google.Protobuf" Version="3.11.2" />
|
<PackageReference Include="Google.Protobuf" Version="3.11.2" />
|
||||||
<PackageReference Include="Grpc.AspNetCore.Server.ClientFactory" Version="2.25.0" />
|
<PackageReference Include="Grpc.AspNetCore.Server.ClientFactory" Version="2.25.0" />
|
||||||
<PackageReference Include="Grpc.Core" Version="2.25.0" />
|
<PackageReference Include="Grpc.Core" Version="2.25.0" />
|
||||||
|
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.25.0" />
|
||||||
<PackageReference Include="Grpc.Tools" Version="2.25.0" PrivateAssets="All" />
|
<PackageReference Include="Grpc.Tools" Version="2.25.0" PrivateAssets="All" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
|
||||||
|
@ -10,13 +10,11 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator.Services
|
|||||||
{
|
{
|
||||||
public class BasketService : IBasketService
|
public class BasketService : IBasketService
|
||||||
{
|
{
|
||||||
private readonly UrlsConfig _urls;
|
|
||||||
private readonly Basket.BasketClient _basketClient;
|
private readonly Basket.BasketClient _basketClient;
|
||||||
private readonly ILogger<BasketService> _logger;
|
private readonly ILogger<BasketService> _logger;
|
||||||
|
|
||||||
public BasketService(Basket.BasketClient basketClient, IOptions<UrlsConfig> config, ILogger<BasketService> logger)
|
public BasketService(Basket.BasketClient basketClient, ILogger<BasketService> logger)
|
||||||
{
|
{
|
||||||
_urls = config.Value;
|
|
||||||
_basketClient = basketClient;
|
_basketClient = basketClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
@ -180,10 +180,6 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator
|
|||||||
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
||||||
|
|
||||||
//register http services
|
//register http services
|
||||||
services
|
|
||||||
.AddHttpClient<IBasketService, BasketService>()
|
|
||||||
.AddHttpMessageHandler<HttpClientAuthorizationDelegatingHandler>()
|
|
||||||
.AddDevspacesSupport();
|
|
||||||
|
|
||||||
services.AddHttpClient<ICatalogService, CatalogService>()
|
services.AddHttpClient<ICatalogService, CatalogService>()
|
||||||
.AddDevspacesSupport();
|
.AddDevspacesSupport();
|
||||||
@ -199,13 +195,15 @@ namespace Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator
|
|||||||
|
|
||||||
public static IServiceCollection AddGrpcServices(this IServiceCollection services)
|
public static IServiceCollection AddGrpcServices(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddSingleton<Http2SupportGrpcInterceptor>();
|
services.AddSingleton<GrpcExceptionInterceptor>();
|
||||||
|
|
||||||
|
services.AddScoped<IBasketService, BasketService>();
|
||||||
|
|
||||||
services.AddGrpcClient<Basket.BasketClient>((services, options) =>
|
services.AddGrpcClient<Basket.BasketClient>((services, options) =>
|
||||||
{
|
{
|
||||||
var basketApi = services.GetService<IOptions<UrlsConfig>>().Value.Basket;
|
var basketApi = services.GetRequiredService<IOptions<UrlsConfig>>().Value.GrpcBasket;
|
||||||
options.Address = new Uri(basketApi);
|
options.Address = new Uri(basketApi);
|
||||||
}).AddInterceptor<Http2SupportGrpcInterceptor>();
|
}).AddInterceptor<GrpcExceptionInterceptor>();
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
|
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
|
|
||||||
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles
|
||||||
|
@ -0,0 +1,32 @@
|
|||||||
|
using Grpc.Core;
|
||||||
|
using Grpc.Core.Interceptors;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
|
namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Infrastructure
|
||||||
|
{
|
||||||
|
public class GrpcExceptionInterceptor : Interceptor
|
||||||
|
{
|
||||||
|
private readonly ILogger<GrpcExceptionInterceptor> _logger;
|
||||||
|
|
||||||
|
public GrpcExceptionInterceptor(ILogger<GrpcExceptionInterceptor> logger)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(
|
||||||
|
TRequest request,
|
||||||
|
ClientInterceptorContext<TRequest, TResponse> context,
|
||||||
|
AsyncUnaryCallContinuation<TRequest, TResponse> continuation)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return continuation(request, context);
|
||||||
|
}
|
||||||
|
catch (RpcException e)
|
||||||
|
{
|
||||||
|
_logger.LogError("Error calling via grpc: {Status} - {Message}", e.Status, e.Message);
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,43 +0,0 @@
|
|||||||
using Grpc.Core;
|
|
||||||
using Grpc.Core.Interceptors;
|
|
||||||
using Microsoft.Extensions.Logging;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Infrastructure
|
|
||||||
{
|
|
||||||
public class Http2SupportGrpcInterceptor : Interceptor
|
|
||||||
{
|
|
||||||
private readonly ILogger<Http2SupportGrpcInterceptor> _logger;
|
|
||||||
|
|
||||||
public Http2SupportGrpcInterceptor(ILogger<Http2SupportGrpcInterceptor> logger)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override AsyncUnaryCall<TResponse> AsyncUnaryCall<TRequest, TResponse>(
|
|
||||||
TRequest request,
|
|
||||||
ClientInterceptorContext<TRequest, TResponse> context,
|
|
||||||
AsyncUnaryCallContinuation<TRequest, TResponse> continuation)
|
|
||||||
{
|
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
|
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true);
|
|
||||||
|
|
||||||
_logger.LogInformation("Calling via grpc client base address serviceName ={@ServiceName}, BaseAddress={@Host} ", context.Method.ServiceName, context.Host);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return continuation(request, context);
|
|
||||||
}
|
|
||||||
catch (RpcException e)
|
|
||||||
{
|
|
||||||
_logger.LogError("Error calling via grpc: {Status} - {Message}", e.Status, e.Message);
|
|
||||||
return default;
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", false);
|
|
||||||
AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -10,13 +10,11 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator.Services
|
|||||||
{
|
{
|
||||||
public class BasketService : IBasketService
|
public class BasketService : IBasketService
|
||||||
{
|
{
|
||||||
private readonly UrlsConfig _urls;
|
|
||||||
private readonly Basket.BasketClient _basketClient;
|
private readonly Basket.BasketClient _basketClient;
|
||||||
private readonly ILogger<BasketService> _logger;
|
private readonly ILogger<BasketService> _logger;
|
||||||
|
|
||||||
public BasketService(Basket.BasketClient basketClient, IOptions<UrlsConfig> config, ILogger<BasketService> logger)
|
public BasketService(Basket.BasketClient basketClient, ILogger<BasketService> logger)
|
||||||
{
|
{
|
||||||
_urls = config.Value;
|
|
||||||
_basketClient = basketClient;
|
_basketClient = basketClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator
|
|||||||
.AddUrlGroup(new Uri(Configuration["MarketingUrlHC"]), name: "marketingapi-check", tags: new string[] { "marketingapi" })
|
.AddUrlGroup(new Uri(Configuration["MarketingUrlHC"]), name: "marketingapi-check", tags: new string[] { "marketingapi" })
|
||||||
.AddUrlGroup(new Uri(Configuration["PaymentUrlHC"]), name: "paymentapi-check", tags: new string[] { "paymentapi" })
|
.AddUrlGroup(new Uri(Configuration["PaymentUrlHC"]), name: "paymentapi-check", tags: new string[] { "paymentapi" })
|
||||||
.AddUrlGroup(new Uri(Configuration["LocationUrlHC"]), name: "locationapi-check", tags: new string[] { "locationapi" });
|
.AddUrlGroup(new Uri(Configuration["LocationUrlHC"]), name: "locationapi-check", tags: new string[] { "locationapi" });
|
||||||
|
|
||||||
services.AddCustomMvc(Configuration)
|
services.AddCustomMvc(Configuration)
|
||||||
.AddCustomAuthentication(Configuration)
|
.AddCustomAuthentication(Configuration)
|
||||||
.AddDevspaces()
|
.AddDevspaces()
|
||||||
@ -142,7 +142,7 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator
|
|||||||
Version = "v1",
|
Version = "v1",
|
||||||
Description = "Shopping Aggregator for Web Clients"
|
Description = "Shopping Aggregator for Web Clients"
|
||||||
});
|
});
|
||||||
|
|
||||||
options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
|
options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
|
||||||
{
|
{
|
||||||
Type = SecuritySchemeType.OAuth2,
|
Type = SecuritySchemeType.OAuth2,
|
||||||
@ -184,10 +184,6 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator
|
|||||||
|
|
||||||
//register http services
|
//register http services
|
||||||
|
|
||||||
services.AddHttpClient<IBasketService, BasketService>()
|
|
||||||
.AddHttpMessageHandler<HttpClientAuthorizationDelegatingHandler>()
|
|
||||||
.AddDevspacesSupport();
|
|
||||||
|
|
||||||
services.AddHttpClient<ICatalogService, CatalogService>()
|
services.AddHttpClient<ICatalogService, CatalogService>()
|
||||||
.AddDevspacesSupport();
|
.AddDevspacesSupport();
|
||||||
|
|
||||||
@ -204,13 +200,15 @@ namespace Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator
|
|||||||
|
|
||||||
public static IServiceCollection AddGrpcServices(this IServiceCollection services)
|
public static IServiceCollection AddGrpcServices(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddSingleton<Http2SupportGrpcInterceptor>();
|
services.AddSingleton<GrpcExceptionInterceptor>();
|
||||||
|
|
||||||
|
services.AddScoped<IBasketService, BasketService>();
|
||||||
|
|
||||||
services.AddGrpcClient<Basket.BasketClient>((services, options) =>
|
services.AddGrpcClient<Basket.BasketClient>((services, options) =>
|
||||||
{
|
{
|
||||||
var basketApi = services.GetService<IOptions<UrlsConfig>>().Value.Basket;
|
var basketApi = services.GetRequiredService<IOptions<UrlsConfig>>().Value.GrpcBasket;
|
||||||
options.Address = new Uri(basketApi);
|
options.Address = new Uri(basketApi);
|
||||||
}).AddInterceptor<Http2SupportGrpcInterceptor>();
|
}).AddInterceptor<GrpcExceptionInterceptor>();
|
||||||
|
|
||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
<AssemblyName>Web.Shopping.HttpAggregator</AssemblyName>
|
<AssemblyName>Web.Shopping.HttpAggregator</AssemblyName>
|
||||||
<RootNamespace>Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator</RootNamespace>
|
<RootNamespace>Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator</RootNamespace>
|
||||||
<DockerComposeProjectPath>..\..\..\docker-compose.dcproj</DockerComposeProjectPath>
|
<DockerComposeProjectPath>..\..\..\docker-compose.dcproj</DockerComposeProjectPath>
|
||||||
@ -15,20 +15,21 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="3.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="3.1.2" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.Uris" Version="3.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.Uris" Version="3.1.2" />
|
||||||
<PackageReference Include="Google.Protobuf" Version="3.11.2" />
|
<PackageReference Include="Google.Protobuf" Version="3.14.0" />
|
||||||
<PackageReference Include="Grpc.AspNetCore.Server.ClientFactory" Version="2.25.0" />
|
<PackageReference Include="Grpc.AspNetCore.Server.ClientFactory" Version="2.34.0" />
|
||||||
<PackageReference Include="Grpc.Core" Version="2.25.0" />
|
<PackageReference Include="Grpc.Core" Version="2.34.0" />
|
||||||
<PackageReference Include="Grpc.Net.Client" Version="2.25.0" />
|
<PackageReference Include="Grpc.Net.Client" Version="2.34.0" />
|
||||||
<PackageReference Include="Grpc.Tools" Version="2.25.0" PrivateAssets="All" />
|
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.34.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.0" />
|
<PackageReference Include="Grpc.Tools" Version="2.34.0" PrivateAssets="All" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.1" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.1" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="3.1.0" />
|
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="5.0.1" />
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
|
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0-dev-00834" />
|
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0-dev-00834" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc5" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
|
||||||
<!--<PackageReference Include="System.Net.Http.WinHttpHandler" Version="4.6.0-rc1.19456.4" />-->
|
<!--<PackageReference Include="System.Net.Http.WinHttpHandler" Version="4.6.0-rc1.19456.4" />-->
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
@ -16,30 +16,30 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.AzureServiceBus" Version="3.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.AzureServiceBus" Version="3.2.2" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.Rabbitmq" Version="3.0.3" />
|
<PackageReference Include="AspNetCore.HealthChecks.Rabbitmq" Version="3.1.4" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.Redis" Version="3.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.Redis" Version="3.1.2" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="3.0.0" />
|
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="3.1.2" />
|
||||||
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="5.0.1" />
|
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.1.0" />
|
||||||
<PackageReference Include="Google.Protobuf" Version="3.11.2" />
|
<PackageReference Include="Google.Protobuf" Version="3.14.0" />
|
||||||
<PackageReference Include="Grpc.AspNetCore.Server" Version="2.25.0" />
|
<PackageReference Include="Grpc.AspNetCore.Server" Version="2.34.0" />
|
||||||
<PackageReference Include="Grpc.Tools" Version="2.25.0" PrivateAssets="All" />
|
<PackageReference Include="Grpc.Tools" Version="2.34.0" PrivateAssets="All" />
|
||||||
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.12.0" />
|
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.16.0" />
|
||||||
<PackageReference Include="Microsoft.ApplicationInsights.DependencyCollector" Version="2.12.0" />
|
<PackageReference Include="Microsoft.ApplicationInsights.DependencyCollector" Version="2.16.0" />
|
||||||
<PackageReference Include="Microsoft.ApplicationInsights.Kubernetes" Version="1.1.1" />
|
<PackageReference Include="Microsoft.ApplicationInsights.Kubernetes" Version="1.1.3" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.HealthChecks" Version="1.0.0" />
|
<PackageReference Include="Microsoft.AspNetCore.HealthChecks" Version="1.0.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.1" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.1.0" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.AzureKeyVault" Version="3.1.10" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="3.1.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.AzureAppServices" Version="5.0.1" />
|
||||||
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
|
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
|
||||||
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
|
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
|
||||||
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.1-dev-00216" />
|
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.1-dev-00216" />
|
||||||
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0-dev-00834" />
|
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.0-dev-00834" />
|
||||||
<PackageReference Include="Serilog.Sinks.Http" Version="5.2.0" />
|
<PackageReference Include="Serilog.Sinks.Http" Version="7.2.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Seq" Version="4.1.0-dev-00166" />
|
<PackageReference Include="Serilog.Sinks.Seq" Version="4.1.0-dev-00166" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc5" />
|
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -16,11 +16,11 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="5.0.1" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="3.1.0" />
|
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="5.0.1" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
|
||||||
<PackageReference Include="Moq" Version="4.13.1" />
|
<PackageReference Include="Moq" Version="4.15.2" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user