在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核心中实现“维护模式”的主要内容,如果未能解决你的问题,请参考以下文章

没有 ASP.Net 的 grpc-dotnet 服务器

ansible+jenkins实现zabbix维护模式添加

如何用vSphere PowerCLI命令实现主机维护模式

如何禁用消息“在维护模式下运行。联机。”在维护模式?

OpenStack Nova 计算节点的维护模式

[Symfony 4.3] 创建一个站点维护模式