asp.net-core – 如何在ApplicationStarted事件中优雅地中止Asp.
运行Asp.Net Core 1.1
大多数时候,无论启动过程中发生什么,我都希望我的ASP.NET核心应用程序能够运行,但是在启动期间有一些关键错误,我希望它能够关闭.在Startup.cs中,我尝试在Configure方法期间将ApplicationLifetime传递给ApplicationStarted事件: appLifetime.ApplicationStarted.Register((al) => { var appLtime = (IApplicationLifetime)al; try { ... various startup code.... } catch (Exception ex) { appLtime.StopApplication(); } },appLifetime); 但这结束了这个错误:
我猜这是因为我在Start()中调用了Stop(),但我不知道其他任何方式.该应用程序确实关闭所以也许没关系,但如果有人有任何建议我真的很感激. 谢谢, 解决方法
我知道这是一个古老的问题,但由于它还没有回答,我只是经历了同样的过程,我想也许我可以帮助其他人在同一条船上.
我正在使用ASP.NET Core 2.1,但解决方案似乎也适用于1.x. 通过向其添加IApplicationLifetime参数并在最后添加ApplicationStarted委托来修改您的Configure方法,如此… public void Configure(IApplicationBuilder app,IHostingEnvironment env,IApplicationLifetime applicationLifetime) { // existing code applicationLifetime.ApplicationStartup.Register(() => OnStartUp(applicationLifetime)); } 在Startup.cs文件中创建一个OnStartUp方法,就像这样…… public void OnStartUp(IApplicationLifetime applicationLifetime) { try { // Do your startup magic } catch(Exception ex) { applicationLifetime.StopApplication(); } } 如果OnStartUp代码出现问题,它现在将成功关闭应用程序,而不会抛出ObjectDisposedException. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-4 – 如何在asp.net MVC4查看页面中包含javasc
- asp.net-mvc-4 – Autofac和ASP .Net MVC 4 Web API
- 如何使用SOAP从经典ASP调用.Net Web服务方法
- 如何在ASP.NET Core 1.0 RC2中加载程序集
- 一个ASP.Net页面中的多个reCAPTCHA
- asp.net – .net Drawing.Graphics.FromImage()返回空白的黑
- asp.net – 如何使用HTML5电子邮件输入类型与服务器端.NET
- asp.net-mvc-2 – 使用routeValue从MVC URL中删除索引
- asp.net-core – 具有独立数据库的ASP.NET Core
- WeihanLi.Npoi 根据模板导出Excel