Сбой WebDeploy в Azure

Я использую приведенный ниже код для развертывания через WebDeploy на веб-сайте Azure. Я могу развернуть на тот же сайт с WebDeploy с Visual Studio 2013, используя тот же сервер и информацию о полномочиях, но когда я запускаю приведенный ниже код, он продолжает давать сбой и сообщает мне, что он не может авторизоваться, он получает 401. Любые идеи?

var sourceBaseOptions = new DeploymentBaseOptions();
DeploymentBaseOptions destBaseOptions = new DeploymentBaseOptions()
{
    UserName = prf.UserName,
    Password = prf.UserPassword,
    ComputerName = string.Format("https://{0}/MsDeploy.axd?Site={1}", 
                                    prf.PublishUrl, 
                                    prf.MSDeploySite)
};
//-disableLink:AppPoolExtension 
//-disableLink:ContentExtension 
//-disableLink:CertificateExtension 
foreach (var extension in sourceBaseOptions.LinkExtensions
    .Where(ext => ext.Name == "AppPoolExtension"
                || ext.Name == "ContentExtension"
                || ext.Name == "CertificateExtension"))
{
    extension.Enabled = false;
}
sourceBaseOptions.Trace += sourceBaseOptions_Trace;
sourceBaseOptions.TraceLevel = System.Diagnostics.TraceLevel.Verbose;
foreach (var extension in destBaseOptions.LinkExtensions
    .Where(ext => ext.Name == "AppPoolExtension"
                || ext.Name == "ContentExtension"
                || ext.Name == "CertificateExtension"))
{
    extension.Enabled = false;
}

using (var deploymentObject = DeploymentManager.CreateObject(
                                    DeploymentWellKnownProvider.Package,
                                    @"E:\DeployPackages\Site.zip", 
                                    sourceBaseOptions))
{
    //configure deploy target Web site name instead of using -SetParams
    deploymentObject.SyncParameters
        .Single(p => p.Name == "IIS Web Application Name")
        .Value = prf.MSDeploySite;

    DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
    syncOptions.WhatIf = false;

    // Will fail on this call
    var changes = deploymentObject.SyncTo(DeploymentWellKnownProvider.Auto, 
                                    "", 
                                    destBaseOptions, 
                                    syncOptions);

}

1 ответ

Конечно, даже через минуту после того, как я опубликовал это, у меня был момент эврики... Исправление было просто установить AuthenticationType = "Basic" для объекта destBaseOptions.

Почувствуй себя костью...

Другие вопросы по тегам