【问题标题】:Web Deploy API (deploy .zip package) ClarificationWeb 部署 API(部署 .zip 包)说明
【发布时间】:2011-10-03 11:51:55
【问题描述】:

我正在使用 web 部署 API 来部署一个 web 包(.zip 文件,由 MSDeploy.exe 创建)以编程方式将包发布到服务器(我们需要在发布包之前做一些其他事情这就是为什么我们不使用 MSDeploy.exe 一次性完成所有工作的原因)。

这是我的代码。我的问题实际上是要澄清执行此操作时发生的情况。在包参数 XML 文件中,我指定了应用程序名称(“默认网站”),但仅此而已,其中没有指定其他参数。从测试服务器看来,包已成功部署,但我的问题是我正在部署的服务器上的任何其他设置在我不知情的情况下被更改,是否已发布任何默认设置等?我可能不知道的安全设置、目录浏览等内容?这里的代码似乎部署了包,但是当我不确定这个 API 是如何工作的时候,我很担心在生产环境中使用它。 MS 文档没有帮助(实际上更像是不存在)。

DeploymentChangeSummary changes;

string packageToDeploy = "C:/MyPackageLocation.zip";
string packageParametersFile = "C:/MyPackageLocation.SetParameters.xml";

DeploymentBaseOptions destinationOptions = new DeploymentBaseOptions()
{
    UserName = "MyUsername",
    Password = "MyPassword",
    ComputerName = "localhost"
};

using (DeploymentObject deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.Package,
                                                                          packageToDeploy))
{
    deploymentObject.SyncParameters.Load(packageParametersFile);
    DeploymentSyncOptions syncOptions = new DeploymentSyncOptions();
    syncOptions.WhatIf = false;

    //Deploy the package to the server.
    changes = deploymentObject.SyncTo(destinationOptions, syncOptions);
}

如果有人能澄清这个 sn-p 应该将包部署到服务器上的网站应用程序,而不更改任何现有的服务器设置(除非在 SetParameters.xml 文件中指定),那将非常有用。任何关于使用 API 的好资源或关于 Web 部署如何在幕后工作的解释也将不胜感激!

【问题讨论】:

    标签: api msbuild msdeploy web-deployment


    【解决方案1】:

    setparameters 文件只控制包中定义的参数的值。一个包可能做的远不止这些。 Web 部署有一个提供者的概念,任何给定的包都可以有一个或多个提供者。

    如果您想确保软件包不会更改服务器端设置,您可以采取的最佳方法是使用 API,但通过 Web 管理服务部署软件包。这将为您带来两个好处:

    1. 您可以控制允许通过哪些提供商。
    2. 您可以添加用户并授予他们受限的权限以部署到他们的站点或文件夹等。

    另一种方法是:

    1. 在包中手动查看 archive.xml 并在包中查找提供程序。只要您没有看到以下任何可能导致服务器设置更改的提供程序,例如 apphostconfig 或 webserver 或 regkey(这不是一个完整的列表),您应该没问题。 Runcommand 是一个允许您执行批处理脚本或命令的提供程序。虽然它对管理员本身来说是一个很好的提供程序,但您需要考虑是否要允许具有此类提供程序的软件包运行。

    2. 您可以在代码中执行上述检查,方法是对您从包中创建的部署对象调用 getchildren 并检查提供程序和提供程序路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-14
      • 2022-01-06
      • 2015-01-13
      相关资源
      最近更新 更多