2016-09-22 100 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>"); 
相关问题