【问题标题】:Deploying a web application to an Azure App Service using MSDeploy使用 MSDeploy 将 Web 应用程序部署到 Azure 应用服务
【发布时间】:2020-09-20 14:40:57
【问题描述】:

我在使用 MSDeploy 将我的 Web 应用程序部署到 Azure 应用服务时遇到了很多麻烦。我需要使用哪些命令行参数?

【问题讨论】:

    标签: azure azure-web-app-service msdeploy


    【解决方案1】:

    MSDeploy 接受参数的方式有点挑剔。首先,该命令需要应用服务的用户名和密码。这可以通过在 PowerShell 中使用 Azure CLI 来找到,如下所示:

    $publishProfile = az webapp deployment list-publishing-profiles --resource-group <ResourceGroupName> --name <WebAppName> --query "[?publishMethod=='MSDeploy']" | ConvertFrom-Json
    

    这会将用户名和密码放入 $publishProfile 变量中,以便稍后与 MSDeploy 一起使用。

    接下来,如果源已发布网站的路径中有空格并且正在使用 PowerShell,则需要将其转换为其等效的短名称语法。如果不这样做,MSDeploy 将抛出无意义的异常,如下所示,难以诊断。

    错误代码:ERROR_PROVIDER_NOT_FOUND 更多信息:找不到提供程序“dirPath=”。了解更多信息:https://go.microsoft.com/fwlink/?LinkId=221672#ERROR_PROVIDER_NOT_FOUND。 在 Microsoft.Web.Deployment.DeploymentProviderSettingCollection..ctor(String factoryName) 在 Microsoft.Web.Deployment.DeploymentProviderOptions..ctor(String factoryName) 在 MSDeploy.MSDeploy.GetObjectParameters(字典`2 参数,布尔 isDestination,DeploymentBaseOptions& retbaseOptions,DeploymentProviderOptions& retproviderOptions) 在 MSDeploy.MSDeploy.ExecuteWorker() 在 MSDeploy.MSDeploy.Execute() 在 MSDeploy.MSDeploy.Main(String[] usedArgs) 错误数:1。

    要将路径转换为其等效的短名称,请使用以下命令:

    $shortPath = (New-Object -ComObject Scripting.FileSystemObject).GetFolder(".\Publish").ShortPath
    

    最后,这是运行 MSDeploy 并将 Web 应用程序部署到 Azure 的命令。为了使用下面的命令,需要定义$webAppName 变量。

    $webAppName = "MyWebApp"
    &"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:dirPath="$shortPath",includeAcls=false -dest:dirpath=D:\home\site\wwwroot,ComputerName="https://$webAppName.scm.azurewebsites.net/msdeploy.axd?site=$($webAppName)",UserName=$($publishProfile.userName),Password=$($publishProfile.userPWD),AuthType='Basic' -verbose -debug
    

    该命令应返回类似于以下内容的输出:

    Info: Using ID 'd5e5eb3d-...' for connections to the remote server.
    Verbose: Pre-authenticating to remote agent URL 'https://webappname.scm.azurewebsites.net/msdeploy.axd?site=webappname' as '$webappname'.
    Verbose: Performing synchronization pass #1.
    Verbose: Pre-authenticating to remote agent URL 'https://webappname.scm.azurewebsites.net/msdeploy.axd?site=webappname' as '$webappname'.
    Verbose: Received response from agent (HTTP status 'OK').
    Info: Adding directory (D:\home\site\wwwroot\cs).
    Info: Adding directory (D:\home\site\wwwroot\de).
    Info: Adding directory (D:\home\site\wwwroot\es).
    Info: Adding directory (D:\home\site\wwwroot\fr).
    Info: Deleting file (D:\home\site\wwwroot\hostingstart.html).
    Info: Adding directory (D:\home\site\wwwroot\it).
    Info: Adding directory (D:\home\site\wwwroot\ja).
    Info: Adding directory (D:\home\site\wwwroot\ko).
    Info: Adding directory (D:\home\site\wwwroot\pl).
    Info: Adding directory (D:\home\site\wwwroot\pt-BR).
    Info: Adding directory (D:\home\site\wwwroot\ru).
    Info: Adding directory (D:\home\site\wwwroot\runtimes).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\unix).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\unix\lib).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\unix\lib\netcoreapp2.0).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\unix\lib\netcoreapp2.1).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win\lib).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win\lib\netcoreapp2.0).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win\lib\netcoreapp2.1).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win\lib\netstandard2.0).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win-arm64).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win-arm64\native).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win-x64).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win-x64\native).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win-x86).
    Info: Adding directory (D:\home\site\wwwroot\runtimes\win-x86\native).
    Info: Adding directory (D:\home\site\wwwroot\tr).
    Info: Adding directory (D:\home\site\wwwroot\zh-Hans).
    Info: Adding directory (D:\home\site\wwwroot\zh-Hant).
    Verbose: The dependency check 'DependencyCheckInUse' found no issues.
    Verbose: The current synchronization pass is missing stream content for 201 objects.
    Info: Using ID '1f1ab053-88c6-40a2-90e4-5347157542e6' for connections to the remote server.
    Verbose: Performing synchronization pass #2.
    Verbose: Pre-authenticating to remote agent URL 'https://webappname.scm.azurewebsites.net/msdeploy.axd?site=webappname' as '$webappname'.
    ...
    Verbose: The HTTP connection (ID='1f1ab053-88c6-40a2-90e4-5347157542e6', type ='GetTraceStatus') is being kept alive while the request is processed.
    Verbose: Received response from agent (HTTP status 'OK').
    ...
    Verbose: The dependency check 'DependencyCheckInUse' found no issues.
    Verbose: The synchronization completed in 2 pass(es).
    Total changes: 231 (230 added, 1 deleted, 0 updated, 0 parameters changed, 44498979 bytes copied)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 2022-11-10
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      相关资源
      最近更新 更多