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

Я смог разместить файлы на своем сервере 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 ]

1 голос
/ 27 ноября 2013

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

deploymentObject.SyncParameters.Load(parameters);

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

<setParameter name="IIS Web Application Name" value="<WebSite>/<VirtualApp>" />'
1 голос
/ 09 октября 2012

На самом деле благодаря вашему коду мне удалось развернуть мои сайты в облаке. Так и должно работать: 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);
        }
...