如果出现严重错误,则终止 .net-core WebApp
Terminating a .net-core WebApp if there is a critical error
为了使部署更容易,我希望我的应用程序在数据库上自行创建预定义的角色。
如果由于某种原因这是第一次在当前数据库上 运行 但它无法创建角色,PE,出现连接错误,应用程序立即终止并显示 Environment.Exit(-1);
.
这是一种不好的做法吗?如果是,为什么?我有什么选择?
为清楚起见编辑:我用 log4net 记录每个 exception/error。
是的,这是不好的做法,但这取决于谁使用它。你是唯一一个吗?或者人们会被没有解释的强制退出所打扰吗?
显示带有一些解释或错误代码的 alert/message 在很多情况下都会很有用。如果可能,记录您从数据库中获得的错误,如果您的应用程序的用户知道如何处理它,您也可以在 alert/message.
中分享它
只要您知道应用程序终止的原因,就可以了。如果这是在生产环境中,您也应该在发生这种情况时收到警报。
至少,您应该记录错误。对于数据库连接,您可以添加逻辑以根据您的要求尝试重新连接一段时间或永远。根据您从数据库返回的错误,您可以重试或不重试。
在我的应用程序中,我采用了永远尝试的方法,但请确保记录我返回的任何错误,例如凭据错误或超时。拥有第三个系统来监控错误并提醒您也很好。
为了使部署更容易,我希望我的应用程序在数据库上自行创建预定义的角色。
如果由于某种原因这是第一次在当前数据库上 运行 但它无法创建角色,PE,出现连接错误,应用程序立即终止并显示 Environment.Exit(-1);
.
这是一种不好的做法吗?如果是,为什么?我有什么选择?
为清楚起见编辑:我用 log4net 记录每个 exception/error。
是的,这是不好的做法,但这取决于谁使用它。你是唯一一个吗?或者人们会被没有解释的强制退出所打扰吗?
显示带有一些解释或错误代码的 alert/message 在很多情况下都会很有用。如果可能,记录您从数据库中获得的错误,如果您的应用程序的用户知道如何处理它,您也可以在 alert/message.
中分享它只要您知道应用程序终止的原因,就可以了。如果这是在生产环境中,您也应该在发生这种情况时收到警报。
至少,您应该记录错误。对于数据库连接,您可以添加逻辑以根据您的要求尝试重新连接一段时间或永远。根据您从数据库返回的错误,您可以重试或不重试。
在我的应用程序中,我采用了永远尝试的方法,但请确保记录我返回的任何错误,例如凭据错误或超时。拥有第三个系统来监控错误并提醒您也很好。