C# 如何在启动时使应用程序失败
我有一个.net核心应用程序。我需要它失败,如果它没有正确配置当前它继续运行,我得到我需要它关闭 我的配置服务如下所示。当应用程序配置不正确时,必须有一种方法使其停止C# 如何在启动时使应用程序失败,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我有一个.net核心应用程序。我需要它失败,如果它没有正确配置当前它继续运行,我得到我需要它关闭 我的配置服务如下所示。当应用程序配置不正确时,必须有一种方法使其停止 public void ConfigureServices(IServiceCollection services) { if (Configuration["settings:connectionString"] == null) return; } 抛出异常 不会停止应用程序它所做的只是将其
public void ConfigureServices(IServiceCollection services)
{
if (Configuration["settings:connectionString"] == null) return;
}
抛出异常
不会停止应用程序它所做的只是将其保留在我的日志中
应用程序启动异常:System.ArgumentNullException:值
不能为空。参数名称:设置:未定义connectionString
正确地在
Xena.IdentityServer.Startup.ConfigureServicesServiceCollection
服务于
C:\Development\Xena\Xena identityserver\src\Xena.identityserver\Startup.cs:line
89
-来自引发异常的上一个位置的堆栈结束跟踪-在
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at
Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServicesServiceCollection
服务于
Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices
位于Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication
crit:Microsoft.AspNetCore.Hosting.Internal.WebHost[6]
应用程序启动异常System.ArgumentNullException:值不能为null。参数名称:设置:连接字符串不可用
正确定义在
Xena.IdentityServer.Startup.ConfigureServicesServiceCollection
服务于
C:\Development\Xena\Xena identityserver\src\Xena.identityserver\Startup.cs:line
89
-来自引发异常的上一个位置的堆栈结束跟踪-在
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw at
Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServicesServiceCollection
服务于
Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices
位于Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication
该网站仍处于打开状态,上面的同一页可见。我需要停止应用程序 为什么不能抛出这样的异常
public void ConfigureServices(IServiceCollection services)
{
if (Configuration["settings:connectionString"] == null)
throw new ArgumentNullException("settings:connectionString Not defined correctly");
}
为什么你不能抛出这样的异常
public void ConfigureServices(IServiceCollection services)
{
if (Configuration["settings:connectionString"] == null)
throw new ArgumentNullException("settings:connectionString Not defined correctly");
}
我在这里用了160个,因为微软的惯例认为这是“错误的论点”,不过我愿意接受这方面的建议
我在这里用了160个,因为微软的惯例认为这是“错误的论点”,不过我愿意接受这方面的建议
抛出新异常?抛出异常不会停止应用程序,它只会在我的日志中留下一条消息,说明应用程序仍在运行。application.Exit;抛出新异常?抛出异常不会停止应用程序,它只会在我的日志中留下一条消息,说明应用程序仍在运行。application.Exit;引发异常不会停止仍在运行的应用程序。我想我应该提到我已经试过了。@DaImTo不,不应该,除非它在呼叫方的某个地方得到处理。。。我的意思是试试。。你可能没有抓住要点。我需要停止此应用程序。抛出异常不会停止仍在运行的应用程序,并提供上述错误网页。@DaImTo因此您需要自定义错误网页不停止应用程序。另外,您可以在此处看到异常的处理方式:抛出异常不会停止仍在运行的应用程序。我想我应该提到我已经试过了。@DaImTo不,不应该,除非它在呼叫方的某个地方得到处理。。。我的意思是试试。。你可能没有抓住要点。我需要停止此应用程序。抛出异常不会停止应用程序仍在运行,并提供上述错误网页。@DaImTo因此您需要自定义错误网页而不是停止应用程序。另外,您可以在此处看到异常是如何处理的:很好!在我之前5秒发布:还有一个方法,可以记录到系统日志。很好!发布时间比我早5秒:还有一个方法,它记录到系统日志中。