gpt4 book ai didi

msdeploy - (MSDeploy) 将文件夹的内容部署到远程 IIS 服务器

转载 作者:行者123 更新时间:2023-12-03 07:31:07 29 4
gpt4 key购买 nike

是否可以将文件夹(纯 Html 文件)的内容部署到远程 IIS6/7 服务器上的特定 Web 应用程序?

以下命令不会出错,但也不会将任何文件发布到远程服务器:

 msdeploy.exe -verb:sync -source:dirPath="c:\myHtmlFiles" -dest:auto,ComputerName="http://deploy.mycompany.co.uk/msdeploy?site=TestSite",includeAcls="false",username="administrator",password="myPassword" -enableRule:DoNotDeleteRule -disableLink:AppPoolExtension -disableLink:ContentExtension -allowUntrusted

笔记:
  • WebDeploy 已正确安装在目标服务器上,并且可以与从 .NET 项目的 msbuild 脚本创建的包一起愉快地工作。
  • ' http://deploy.mycompany.co.uk/msdeploy ' 对于收听端点是正确的。
  • '?site=TestSite' 查询字符串在别处建议,但不起作用。
  • “TestSite”Web 应用程序存在于目标服务器上。
  • 如果您尝试设置、声明或提供参数“IIS Web 应用程序名称”,则参数文件和 -setParam 不起作用,并且会呈现与不支持参数“IIS Web 应用程序名称”的源相关的错误。
  • 最佳答案

    我刚刚写了一篇博文来回答这个问题 http://sedodream.com/2012/08/20/WebDeployMSDeployHowToSyncAFolder.aspx .从您的问题来看,您似乎对 MSDeploy 非常熟悉,因此答案可能有点冗长,但我希望对 MSDeploy 了解较少的人能够理解。我已经粘贴了下面的答案。

    Web 部署(又名 MSDeploy)使用提供者模型,并且有一个 good number of providers开箱即用。为您提供一些提供商的示例;同步 IIS Web 应用程序时,您将使用 iisApp,对于 MSDeploy 包,您将使用包,对于 Web 服务器 webServer 等。如果要将本地文件夹同步到远程 IIS 路径,则可以使用 contentPath提供者。您还可以使用此提供程序将文件夹从一个网站同步到另一个网站。

    在这种情况下,我们想要做的一般想法是将一个文件夹从您的 PC 同步到您的 IIS 网站。对 msdeploy.exe 的调用可能有点冗长,因此让我们一步一步地构建命令。我们将使用下面的模板。

    msdeploy.exe -verb:sync -source:contentPath="" -dest:contentPath=""

    我们使用同步动词来描述我们正在尝试做什么,然后对源和目标使用 contentPath 提供程序。现在让我们填写这些值应该是什么。对于源值,您需要传入要同步的文件夹的完整路径。在我的情况下,文件位于 C:\temp\files-to-pub。对于 dest 值,您将提供文件夹路径作为 IIS 路径。就我而言,我要同步的网站名为 sayedupdemo,因此我要同步的 IIS 路径是“sayedupdemo/files-to-pub”。现在给我们。
    msdeploy.exe –verb:sync -source:contentPath="C:\temp\files-to-pub" -dest:contentPath='sayedupdemo/files-to-pub'

    对于 dest 值,我们没有给出任何参数来指示这些命令应该发送到哪个服务器。我们需要添加这些参数。通常需要传入的参数是。
  • ComputerName - 这是将处理发布操作的 URL 或计算机名称
  • 用户名 – 用户名
  • 密码 – 密码
  • AuthType – authType要使用的。 NTLM 或 Basic。对于 WMSvc,这通常是 Basic,对于远程代理服务,这是 NTLM

  • 就我而言,我将发布到 Windows Azure Web Site .所以我将使用的值是:
  • 计算机名:https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo
  • 用户名:$sayedupdemo
  • 密码:thisIsNotMyRealPassword
  • 身份验证类型:基本

  • 所有这些值都可以在 .publishSettings 文件中找到(可以从 WindowsAzure.com 的网站仪表板下载)。对于 ComputerName 值,您需要附加站点名称以获取完整 URL。在上面的例子中,我手动添加了 ?site=sayedupdemo ,这与 Azure 门户中显示的名称相同。所以现在我们拥有的命令是。
    msdeploy.exe 
    –verb:sync
    -source:contentPath="C:\temp\files-to-pub"
    -dest:contentPath='sayedupdemo/files-to-pub'
    ,ComputerName="https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo"
    ,UserName='$sayedupdemo'
    ,Password='thisIsNotMyRealPassword'
    ,AuthType='Basic'

    好的,我们快到了!就我而言,我想确保在此过程中不会从服务器中删除任何文件。所以我还要加上 –enableRule:DoNotDeleteRule .所以我们的命令是现在。
    msdeploy.exe 
    –verb:sync
    -source:contentPath="C:\temp\files-to-pub"
    -dest:contentPath='sayedupdemo/files-to-pub'
    ,ComputerName="https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo"
    ,UserName='$sayedupdemo'
    ,Password='thisIsNotMyRealPassword'
    ,AuthType='Basic'
    -enableRule:DoNotDeleteRule

    此时,在我执行此命令之前,我将首先通过 –whatif 执行它.这将为我提供在不实际导致任何更改的情况下将进行哪些操作的摘要。当我这样做时,结果如下图所示。

    msdeploy result

    在我确认更改都是故意的后,我删除了 –whatif并执行了命令。之后,本地文件被发布到远程服务器。现在我已经同步了每个发布的文件,这将导致只发布更改的文件。

    如果您想了解如何 snyc 单个文件,您可以查看我之前的博客文章如何在发布期间使您的 Web 应用程序脱机。

    目标:自动

    在您的情况下,我注意到您使用的是 dest:auto ,您可以使用它,但您必须将 IIS 应用程序名称作为参数传递,它将替换文件夹的路径。下面是命令。
    msdeploy.exe 
    -verb:sync
    -source:contentPath="C:\temp\files-to-pub"
    -dest:auto
    ,ComputerName="https://waws-prod-blu-001.publish.azurewebsites.windows.net/msdeploy.axd?site=sayedupdemo"
    ,UserName='$sayedupdemo'
    ,Password='thisIsNotMyRealPassword'
    ,AuthType='Basic'
    -enableRule:DoNotDeleteRule
    -setParam:value='sayedupdemo',kind=ProviderPath,scope=contentPath,match='^C:\\temp\\files-to-pub$'

    关于msdeploy - (MSDeploy) 将文件夹的内容部署到远程 IIS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11885454/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com