首页 文章

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

提问于
浏览
0

海兰

我们有两个应用服务:

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

  • WebApplication(Azure应用服务Web应用程序 - > 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

    据我所知,如果只将设置存储在web.config中,则很容易做到这一点 . 您只需在Azure门户中选择"slot setting" . 如果你想在交换前做一些交换工作,我建议你使用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>");
    

相关问题