2016-09-22 98 views
0

海蘭Azure的Web應用程序部署插槽:預交換工作

我們有兩個應用服務:

  • RESTService(Azure的應用程序服務Web應用程序 - > ASP.NET)

  • 的WebApplication( Azure應用服務Web應用程序 - > Angular.JS SPA)

RESTService有一個web.config和WebA應用一個appconfig.json作爲它們的配置文件。

在每個應用程序服務中,我們都有一個臨時插槽,我們希望在其中進行一些測試(自動和手動)。出於這個原因,我們需要爲web.config和appconfig.json文件設置sticky-slot。通過門戶網站的粘貼設置,我認爲這是不可能的(這些設置僅適用於appsettings-我認爲web.config中的配置)。

這樣做的最好方法是什麼?

我想到了類似的東西: - 在我的發行版配置中,我將web應用程序部署到臨時插槽,然後在web.config上執行修改(調整臨時環境的設置)在一個任務(power-shell或類似的東西)中執行appjson.config ...然後我可以執行自動測試,如果它們成功了,我將取消配置文件中的更改並切換到生產。但是,如果我想做一些手動測試並在門戶中進行交換,那麼是什麼?比我必須做我自己撤消更改...

是否有可能像交換前工作,可能會觸發前交換?

感謝您的幫助,

彼得

回答

0

據我所知,這是很容易做到這一點,如果你只存儲在web.config中的設置。您只需在Azure門戶中選擇「插槽設置」即可。如果你想在交換之前做一些交換工作,我會建議你使用Microsoft.WindowsAzure.Management.WebSites,以下是交換插槽的代碼。

var cert = new X509Certificate2(); 
cert.Import(Convert.FromBase64String("MIIDBjCCAe6gAwIBAgIQbaFn9SASQoFHELar.....")); 
var _client = new Microsoft.WindowsAzure.Management.WebSites.WebSiteManagementClient(new Microsoft.WindowsAzure.CertificateCloudCredentials("***", cert)); 
//do somethings..... 
client.WebSites.SwapSlots("<web space>", "<website name>", "<source slot name>", "<target slot name>"); 
相關問題