Azure WebApp部署插槽:预交换作业

时间:2016-09-22 14:28:52

标签: azure-web-sites azure-deployment-slots

HY

我们有两个应用服务:

  • RESTService(Azure App Service Web App - > ASP.NET)

  • WebApplication(Azure App Service Web App - > Angular.JS SPA)

RESTService有一个web.config,WebApplication有一个appconfig.json作为他们的配置文件。

在每个应用服务上,我们都有一个临时插槽,我们想在那里做一些测试(自动和手动)。因此,我们需要为web.config和appconfig.json文件设置粘滞槽设置。使用门户网站的粘滞槽设置,我认为这是不可能的(这些设置仅适用于我认为的web.config中的appsettings-configurations)。

最好的方法是什么?

我想到这样的事情: - 在我的发布配置中,我将web-apps部署到临时插槽,然后在web.config和任务中的appjson.config(power-shell等)上进行修改(调整登台环境的设置)类似的)...然后我可以进行自动测试,如果他们成功我撤消我在配置文件中的更改并交换到生产。但是,如果我想进行一些手动测试并在门户中进行交换,那该怎么办?我不得不自己撤消变更......

是否有类似于交换前作业的内容,可能会在交换之前触发?

感谢您的帮助,

彼得

1 个答案:

答案 0 :(得分: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>");