2017-03-09 68 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。

相關問題