【发布时间】:2017-08-24 01:52:54
【问题描述】:
无论我多少次尝试从 VSTS CD 部署我最近迁移的 ASP.NET MVC Core 2.0 应用程序,我都只能看到在我迁移项目和 VSTS CI 构建步骤之前创建的旧版本。
没有错误消息。一切都在发出快乐的声音。但是,我将内部版本号注入到 appsettings.json 中,这样我就可以看到哪个版本正在生产中,并且我进行了一些微小的美学更改,只是为了确定该软件的新版本正在生产中,我是100% 确信没有提供最新版本。
我将我的 Web 应用程序从 ASP.NET MVC Core 1.1.2 迁移到 ASP.NET MVC Core 2.0.0。最后两个成功部署的 1.1 版本是 #259 和 #260。
我使用“预览”2.0 步骤更新了 VSTS 构建过程,并使其生成成功的构建。这个新版本是 #270。
在暂存槽中部署到 Azure Web 应用网站时,VSTS 发布过程未报告任何错误。
我交换插槽没有任何错误。
但是,我只看到版本 #259 和 #260,因为我尝试手动重新发布版本 #270 并在 VSTS CD 成功响应后重新交换插槽。
此时,我正在考虑进入 Kudu 并删除所有内容以强制 Azure 网站 Web 应用程序给我一个明显的错误消息。
然而,在我这样做之前,我想问一下我是否缺少任何明显的东西?与 CI 功能不同,VSTS CD 没有详细日志记录 (AFAICT),我无法在 Azure Web 应用端找到任何有关部署尝试的日志记录。
这是构建的历史......所有成功:
关于上下文,这是整个管道:
这是 Azure 应用服务的定义:
8/24 上午 10 点更新:
今天早上,根据@starain-MSFT 的评论,我做了以下事情:
在 Azure 中,我停止了暂存槽和生产槽。
回到发布定义中的 VSTS,在“Azure App Service Deploy”任务中,我检查了,是的,“使用 Web Deploy 发布”已被检查。
我在“删除目标位置的其他文件”中添加了一个复选标记。
我创建了一个新版本 (#110)。
我查看了“部署 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 存储库上打开了一个支持问题:
【问题讨论】:
-
关于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