【问题标题】:VSTS Continuous Deployment of ASP.NET MVC Core 2.0 app to Azure Web Apps not deploying, no errorsVSTS 将 ASP.NET MVC Core 2.0 应用程序持续部署到 Azure Web 应用程序未部署,没有错误
【发布时间】:2017-08-24 01:52:54
【问题描述】:

无论我多少次尝试从 VSTS CD 部署我最近迁移的 ASP.NET MVC Core 2.0 应用程序,我都只能看到在我迁移项目和 VSTS CI 构建步骤之前创建的旧版本。

没有错误消息。一切都在发出快乐的声音。但是,我将内部版本号注入到 appsettings.json 中,这样我就可以看到哪个版本正在生产中,并且我进行了一些微小的美学更改,只是为了确定该软件的新版本正在生产中,我是100% 确信没有提供最新版本。

  1. 我将我的 Web 应用程序从 ASP.NET MVC Core 1.1.2 迁移到 ASP.NET MVC Core 2.0.0。最后两个成功部署的 1.1 版本是 #259 和 #260。

  2. 我使用“预览”2.0 步骤更新了 VSTS 构建过程,并使其生成成功的构建。这个新版本是 #270。

  3. 在暂存槽中部署到 Azure Web 应用网站时,VSTS 发布过程未报告任何错误。

  4. 我交换插槽没有任何错误。

  5. 但是,我只看到版本 #259 和 #260,因为我尝试手动重新发布版本 #270 并在 VSTS CD 成功响应后重新交换插槽。

此时,我正在考虑进入 Kudu 并删除所有内容以强制 Azure 网站 Web 应用程序给我一个明显的错误消息。

然而,在我这样做之前,我想问一下我是否缺少任何明显的东西?与 CI 功能不同,VSTS CD 没有详细日志记录 (AFAICT),我无法在 Azure Web 应用端找到任何有关部署尝试的日志记录。

这是构建的历史......所有成功:

关于上下文,这是整个管道:

这是 Azure 应用服务的定义:

8/24 上午 10 点更新:

今天早上,根据@starain-MSFT 的评论,我做了以下事情:

  1. 在 Azure 中,我停止了暂存槽和生产槽。

  2. 回到发布定义中的 VSTS,在“Azure App Service Deploy”任务中,我检查了,是的,“使用 Web Deploy 发布”已被检查。

  3. 我在“删除目标位置的其他文件”中添加了一个复选标记。

  4. 我创建了一个新版本 (#110)。

  5. 我查看了“部署 Azure 应用服务”发布任务的日志:

2017-08-24T14:53:01.7169084Z ##[section]Starting: Deploy Azure App Service 2017-08-24T14:53:01.7419076Z ============================================================================== 2017-08-24T14:53:01.7419076Z Task : Azure App Service Deploy 2017-08-24T14:53:01.7419076Z Description : Update Azure Web App Services, Web App On Linux , Function Apps, Mobile Apps using Web Deploy / Kudu REST APIs 2017-08-24T14:53:01.7419076Z Version : 3.3.13 2017-08-24T14:53:01.7419076Z Author : Microsoft Corporation 2017-08-24T14:53:01.7419076Z Help : [More Information](https://aka.ms/azurermwebdeployreadme) 2017-08-24T14:53:01.7419076Z ============================================================================== 2017-08-24T14:53:03.7273244Z Got connection details for Azure App Service:'beastmuffin' 2017-08-24T14:53:04.4099686Z [command]"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package='d:\a\r1\a\BeastMuffin-CI\drop\270.zip' -dest:contentPath='beastmuffin',ComputerName='https://beastmuffin-staging.scm.azurewebsites.net:443/msdeploy.axd?site=beastmuffin',UserName='********',Password='********',AuthType='Basic' -enableRule:AppOffline -userAgent:VSTS_3ba069a5-b836-4fd5-9b7a-158f8f07399f_release_1_110_110_1 2017-08-24T14:53:05.4251931Z Info: Using ID '5285835e-1d30-414e-bcb6-288c207678ac' for connections to the remote server. 2017-08-24T14:53:16.2964958Z Info: Deleting file (beastmuffin\Accessibility.dll). 2017-08-24T14:53:16.2964958Z Info: Deleting file (beastmuffin\Accessibility.xml).

...大约 3000 行之后...

2017-08-24T14:54:43.0840845Z Info: Deleting file (beastmuffin\zh-Hant\System.Spatial.resources.dll). 2017-08-24T14:54:43.0840845Z Info: Deleting directory (beastmuffin\zh-Hant). 2017-08-24T14:54:43.0840845Z Total changes: 3009 (0 added, 3009 deleted, 0 updated, 0 parameters changed, 0 bytes copied) 2017-08-24T14:54:43.0980858Z Successfully deployed web package to App Service. 2017-08-24T14:54:44.9961584Z Successfully updated deployment History at https://beastmuffin-staging.scm.azurewebsites.net/deployments/1101503586484042

因此,看起来它删除了旧文件,但没有将新构建的文件部署/添加到 Azure - 但是部署的命令(根据日志)没有引发任何异常。

为了确认没有真正部署,我访问了该站点并立即查看:

所以,我猜目前生产槽中没有文件。

8/24 下午 1 点更新:

一个新的相关细节,我继续调试。

新的(预览版)应用服务编辑器显示 .zip 文件已移至 /wwwroot 文件夹,但并未解压缩。

根据日志和 .zip 文件,我开始认为“部署 Azure 应用服务”任务还不支持 ASP.NET MVC Core 2.0。

为此,我在 vsts-tasks GitHub 存储库上打开了一个支持问题:

https://github.com/Microsoft/vsts-tasks/issues/5111

【问题讨论】:

  • 关于step5,你是怎么做的?如果您使用 web 部署发布,您可以选中 Remove additional files at destination 选项(选中 Publish using web deploy 选项)。可以分享一下 OneDrive 上的详细发布日志吗?
  • @starain-MSFT 这是最近发布尝试的压缩日志文件:1drv.ms/f/s!AvZL4t4dMuo5lq0ZNAhbsZYgZxqP2Q
  • @starain-MSFT 请看看我的更新(上图)。我可以看到现在正在删除文件的位置,但没有复制新版本。
  • 你分享的文件不是发布日志,另一方面,也要在 OneDrive 上分享构建日志。 (设置/添加 system.debug 为 true,然后排队构建和发布)
  • 根据更新,包名是270.zip,但是Beastmuffn.web.zip在azure app服务中,如何发布web app到包?另一方面,部署 Azure 应用服务支持 core 2.0 应用。

标签: asp.net-core azure-web-app-service azure-pipelines-release-pipeline


【解决方案1】:

此问题已在 GitHub (github.com/Microsoft/vsts-tasks/issues/5111) 上解决。

简而言之,新的构建步骤“dotnet publish”(在我写这篇文章时处于预览状态)允许您压缩工件。

但是,我已经有了旧的“归档文件”构建步骤,我从未从之前的 ASP.NET MVC Core 1.1 构建定义中删除它。

因此,结果是构建正在压缩压缩发布。在发布期间,发布被解压缩一次,内部的 zip 文件在移动到 Azure 网站目标时保持解压缩。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多