2017-03-09 54 views
0

我正在使用azure应用服务和数据库来处理我的C#ODATA API和数据库作为我手机应用程序的后端。 我只有一个托管10个端点的应用服务。有时候我需要发布新版本,并且在部署期间不需要任何传入请求。如何通知用户api维护正在进行中

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

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

这是我的审判: 我唯一能想出来的就是这个。尽管用户一直使用自己的URL请求 “的OData”:https://myserverl/odata/Users

这是在这样的webapi.config设置:

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

我把routePrefix(第2的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”的所有传入请求都将导致错误。我以后可以随时把它放回去。

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

回答

0

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

在Azure中,只需停止应用程序服务即可生成其中一个错误代码。

注意:您必须检查两者:403 & 503。

相关问题