10

我已经能够使用 Microsoft.Web.Deployment 代码在我的 IIS 服务器上放置文件:

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);

似乎这一切只是在现有 Web 应用程序下创建一个新文件夹。如果我进入 IIS 管理器,右键单击我创建的文件夹,然后单击“转换为应用程序”,然后我会得到我正在寻找的行为。有谁知道如何仅使用 Microsoft.Web.Deployment 包来做到这一点?

4

2 回答 2

3

实际上,多亏了您的代码,我设法将我的网站部署到了云端。所以它应该工作: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);
        }
于 2012-10-09T10:47:25.980 回答
1

您可以将以下行添加到您的代码中

deploymentObject.SyncParameters.Load(parameters);

.SetParameters.xml 文件parameters的完整路径在哪里。<project>在此文件中,您指定虚拟应用程序名称:

<setParameter name="IIS Web Application Name" value="<WebSite>/<VirtualApp>" />'
于 2013-11-27T15:47:19.137 回答