在asp.net核心中实现“维护模式”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在asp.net核心中实现“维护模式”相关的知识,希望对你有一定的参考价值。
您如何为Asp.Net Core应用程序实施站点范围的“维护模式”?
要求:
- 所有控制器请求均以相同的静态“维护模式”页面响应
- 您需要能够在后端翻转一个开关以打开和关闭维护模式(因此必须在运行时发生)
我目前的最佳想法是在所有控制器上使用动作过滤器,在其中检查代码中的维护模式(数据库中的位),如果维护模式为true,则仅返回维护模式页面。
答案
最佳方法。您可以在应用程序中使用环境变量,但是每当需要关闭维护时,都必须修改VariableName。
"IIS Express (Staging)":
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables":
"ASPNETCORE_ENVIRONMENT": "Staging"
请看上面的代码来自launchSettings.json文件。其中包含将ASPNETCORE_ENVIRONMENT设置为登台。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
else
app.UseExceptionHandler("/Home/Maintainance");
甚至您也可以根据环境变量更改layout.cshtml页面中的某些内容。
<environment names="Development">
<link rel="stylesheet" href="<your-regular-css-files>" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="<your-maintainance-css-files>" />
</environment>
但是这里您的一个要求是,您应该需要能够在背面更改维护模式。在这种情况下,请从管理面板中更改JSON文件ASPNETCORE_ENVIRONMENT的值。我认为这应该很好。
以上是关于在asp.net核心中实现“维护模式”的主要内容,如果未能解决你的问题,请参考以下文章