2017-02-14 27 views
0

У меня проблема с пакетом Microsoft.Web.Deployment. кто-то здесь может сказать мне, как я должен написать/настроить синхронизацию, что цель будет завершена, прежде чем обновлять ее с новой версией?Microsoft.Web.Deployment: как отключить целевую сеть до синхронизации новой версии?

вот мой сниппет:

var publishSettings = GetPublishSettings(subscriptionId, resourcegroupName, websiteName); 
var sourceBaseOptions = new DeploymentBaseOptions(); 

var targetBaseOptions = new DeploymentBaseOptions 
{ 
    ComputerName = publishSettings.ComputerName, 
    UserName = publishSettings.Username, 
    Password = publishSettings.Password, 
    AuthenticationType = "basic", 
    TraceLevel = Verbose 
}; 
targetBaseOptions.Trace += TargetBaseOptions_Trace; 
var syncOptions = new DeploymentSyncOptions 
{ 
    DoNotDelete = false, 
    WhatIf = false, 
    UseChecksum = true 
}; 

using (var deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.ContentPath, Path.GetFullPath(websitePath), sourceBaseOptions)) 
{ 
     var summary = deploymentObject.SyncTo(DeploymentWellKnownProvider.ContentPath, publishSettings.SiteName, targetBaseOptions, syncOptions); 
     if (summary.Errors > 0) throw new Exception("Website Deployment failed"); 
     if (summary.Errors == 0) 
     { 
      Console.WriteLine($"{publishSettings.SiteName}: erfolgreich"); 
     } 
} 

я мог себе представить, что это что-то в DeploymentSyncOptions

спасибо ребята

ответ

1

От Microsoft.Web.Deployment, я не мог найти это предоставляет метод или возможность управлять (останавливать, перезагружать и т. д.) веб-сайт Azure. Если вы хотите остановить свой веб-сайт Azure перед развертыванием, вы можете попробовать использовать Microsoft.Azure.Management.WebSites, который предоставляет возможности управления сайтом для Microsoft Azure.

WebSiteManagementClient websiteManagementClient = new WebSiteManagementClient(cred); 

websiteManagementClient.SubscriptionId = "your subscription id here"; 
websiteManagementClient.Sites.StopSite(AzureResourceGroup, siteName); 

и вы можете использовать websiteManagementClient.Sites.GetSite(AzureResourceGroup, siteName).State для проверки состояния сайта.

enter image description here