【问题标题】:How to inform users that api maintenance is in progress如何通知用户api维护正在进行中
【发布时间】:2017-03-09 07:50:48
【问题描述】:

我正在为我的 C# ODATA API 和数据库使用天蓝色应用服务和数据库作为我的手机应用程序的后端。 我只有一个托管 10 个端点的应用程序服务。有时我需要发布新版本,并且在部署期间我不希望收到任何传入请求。

我不介意用户在维护期间无法完成他们的请求。

Azure 或 API 中有什么可以让我: 1.手动关闭api/app服务? 2. 能够通知用户正在进行维护吗?

这是我的试验: 我唯一能想到的就是这个。虽然用户总是在他们的 url 请求中使用“odata”:https://myserverl/odata/Users

在 webapi.config 中设置如下:

config.MapODataServiceRoute("odata", "odata", builder.GetEdmModel());

我将 routePrefix(第二个 odata)放在 web.config 中。 当我需要关闭访问时,我将 web.config(即使在将代码发布到 Azure 之后也可以手动访问)更改为如下所示:

<add key="odata" value="noaccess" />

在我的 webapi.config 中:

string odata = ConfigurationManager.AppSettings["odata"].ToString();
config.MapODataServiceRoute("odata", odata, builder.GetEdmModel());

然后保存将重置服务器的 web.config,所有具有“odata”的传入请求都将导致错误。我可以稍后再设置它。

此方法将阻止用户在维护期间发送请求,但不会让他们知道发生了什么。

【问题讨论】:

    标签: c# azure asp.net-web-api odata


    【解决方案1】:

    我想通了。 当我从客户端调用服务器时,我会在解析结果或任何其他进一步处理之前验证响应在 200 和 299 之间。 所以现在,我还要检查来自服务器的可能响应,它可能是 403(访问被拒绝)或 503(服务器不可用)。这就是我可以添加代码来通知用户的地方。

    在 Azure 中,只需停止应用服务,就会生成这两个错误代码之一。

    注意:您必须同时检查:403 和 503。

    【讨论】:

      猜你喜欢
      • 2010-09-22
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 2018-03-09
      • 2013-11-27
      相关资源
      最近更新 更多