Развертывание веб-приложения с использованием Microsoft.Web.Deployment

Я смог разместить файлы на своем сервере IIS с помощью кода Microsoft.Web.Deployment:

DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
DeploymentBaseOptions sourceBaseOptions = new DeploymentBaseOptions();
sourceBaseOptions.ComputerName = "localhost";

DeploymentBaseOptions destinationBaseOptions = new DeploymentBaseOptions();
destinationBaseOptions.ComputerName = ComputerName;  // remote host
destinationBaseOptions.UserName = Username;
destinationBaseOptions.Password = Password;

 DeploymentObject deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.IisApp, deployDirectory, sourceBaseOptions);

 deploymentObject.SyncTo(DeploymentWellKnownProvider.IisApp, RemoteFolderName, destinationBaseOptions, syncOptions);

Кажется, что все, что это делает, это создает новую папку под существующим веб-приложением. Если я зайду в IIS Manager, щелкните правой кнопкой мыши созданную папку и выберите "Преобразовать в приложение", после чего я получу искомое поведение. Кто-нибудь знает, как это сделать, просто используя пакет Microsoft.Web.Deployment?

2 ответа

На самом деле благодаря вашему коду мне удалось развернуть мои сайты в облаке. Так и должно работать:P

public static void DeployWebsite(string user, string pw, string folder, string domain, string sitename)
        {
            DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
            DeploymentBaseOptions sourceBaseOptions = new DeploymentBaseOptions();
            DeploymentBaseOptions destinationBaseOptions = new DeploymentBaseOptions();

            destinationBaseOptions.ComputerName = domain;
            destinationBaseOptions.UserName = user;
            destinationBaseOptions.Password = pw;

            DeploymentObject deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.IisApp, folder, sourceBaseOptions);
            deploymentObject.SyncTo(DeploymentWellKnownProvider.IisApp, sitename, destinationBaseOptions, syncOptions);
        }

Вы можете добавить следующие строки в свой код

deploymentObject.SyncParameters.Load(parameters);

где parameters это полный путь к вашему <project>Файл.SetParameters.xml. В этом файле вы указываете имя виртуального приложения:

<setParameter name="IIS Web Application Name" value="<WebSite>/<VirtualApp>" />'
Другие вопросы по тегам