我正在使用 .NET Core 3.1 Web 应用程序。安装了以下软件包:
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.HealthChecks" Version="2.2.0" />
<PackageReference Include="AspNetCore.HealthChecks.UI" Version="3.1.2" />
Run Code Online (Sandbox Code Playgroud)
在我的 Startup.cs 类中,我像这样注册我的 HealthChecks:
services.AddHealthChecksUI();
services.AddHealthChecks()
.AddCheck("SQL Server", new SqlServerConnectionHealthCheck(connectionString), HealthStatus.Unhealthy)
.AddCheck("Redis", new RedisConnectionHealthCheck(), HealthStatus.Unhealthy)
.AddCheck("CRM", new CrmConnectionHealthCheck(), HealthStatus.Unhealthy)
.AddCheck("DMS", new DmsConnectionHealthCheck(), HealthStatus.Unhealthy);
Run Code Online (Sandbox Code Playgroud)
app.UseEndpoints(endpointRouteBuilder =>
{
endpointRouteBuilder.MapControllers();
endpointRouteBuilder.MapHealthChecks("/health");
endpointRouteBuilder.MapHealthChecksUI(options =>
{
options.UIPath = "/healthui";
});
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是,一旦我的应用程序启动,我就会收到以下异常:
未处理的异常。System.InvalidOperationException:尚未注册类型“HealthChecks.UI.Core.Data.HealthChecksDb”的服务。
在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider 提供程序,类型 serviceType) 在 Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider 提供程序) 在 HealthChecks.UI.Core.HostedService.UIInitializationHostedService.InitializeDatabase(IServiceProvider sp)在 HealthChecks.UI.Core.HostedService.UIInitializationHostedService.StartAsync(CancellationToken CancelationToken) 在 Microsoft.AspNetCore.Hosting.HostedServiceExecutor.ExecuteAsync(Func`2 回调,布尔型 throwOnFirstFailure) 在 Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken CancellationToken) 在Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost 主机、CancellationToken 令牌、字符串startupMessage)在 Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost 主机、CancellationToken 令牌、字符串startupMessage)在 Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync( IWebHost 主机、CancellationToken …
VS 2019(企业版?)似乎有一种新型控制台应用程序主机可用,甚至在我停止调试后仍保持未关闭状态。当启动多个项目时,启动的第一个控制台应用程序将属于这种新类型。
我正在寻找一种方法来阻止 VS 在“主”项目中使用此控制台,并为我正在启动的每个项目使用相同的控制台。我已经在 VS 2017 中使用 4 个 ASP.NET Core 项目启动了相同的解决方案,而 Visual Studio 没有启动任何标题中带有“dotnet.exe”的控制台。所以这似乎是 2019 年的新事物。
提出这个问题的原因是因为我在使用这个新控制台时遇到了一些问题。该项目通常根本无法启动,并且控制台的颜色都是绿色的。但这不应该是这个问题的主题。
那么有没有办法阻止 Visual Studio 2019 启动这个新控制台呢?
我正在尝试从 ASP.NET Core 2.1 项目连接到 SignalR 集线器。查看此处的文档: https: //learn.microsoft.com/en-us/aspnet/core/signalr/dotnet-clientMicrosoft.AspNetCore.SignalR.Client ?view=aspnetcore-2.2,它表示需要包引用。
查看此库的 NuGet 站点 ( https://www.nuget.org/packages/Microsoft.AspNetCore.SignalR.Client/ ),没有可用的 .NET Core 2.X 版本。
为什么没有 2.1 的版本?如果没有,我可以使用什么库来使用 .NET Core 2.1 连接到 SignalR 集线器Microsoft.AspNetCore.SignalR.Client?