我在Visual Studio Online的Git中创建了一个虚拟的Hello World ASP.NET 5(MVC 6)项目。 我按照this document中描述的步骤构建并部署到我的Azure网站。
我花了好几次尝试,因为构建失败了,例如"无法恢复NuGet包"或者不存在的wwwfolder(我必须提交源代码控制以使其正常工作)但是我让它工作并且应用程序启动并运行。
我需要帮助的问题是持续集成配置。在Visual Studio中,只要在我的主分支中签入,我就选择了CI触发器来构建/部署。 这会正确触发尝试,但它会因此错误而一直失败。
Error Code: ERROR_FILE_IN_USE
More Information: Web Deploy cannot modify the file 'AspNet.Loader.dll' on the destination because it is locked by an external process. In order to allow the publish operation to succeed, you may need to either restart your application to release the lock, or use the AppOffline rule handler for .Net applications on your next publish attempt.
如何解决这个问题?
谢谢。
PS:我也不知道为什么在部署的Azure网站中我看不到日志。当我使用GitHub挂钩时,它用于显示所有失败/成功的部署。
通常在Azure应用下的Azure中>部署
答案 0 :(得分:1)
我遇到了同样的问题。如果您有多个部署插槽,可能有更优雅的方法来处理它,但对于我在部署期间有一分钟停机时间的情况是可以接受的。
您可以修改脚本以使用Start-AzureWebsite和Stop-AzureWebsite 注意:我添加了$ hostNameIndex,因为如果添加域名,则需要更改。然后,您可以在Azure Powershell Script Arguments中传递此内容。
param($websiteName, $packOutput, $hostNameIndex = 1) Stop-AzureWebsite -Name $websiteName $website = Get-AzureWebsite -Name $websiteName # get the scm url to use with MSDeploy. # By default this will be the second in the array. Changes when you add custom domain names. # Here I have the default and 2 custom so scm is in 4th position ie. index: 3 $msdeployurl = $website.EnabledHostNames[$hostNameIndex] $publishProperties = @{'WebPublishMethod'='MSDeploy'; 'MSDeployServiceUrl'=$msdeployurl; 'DeployIisAppPath'=$website.Name; 'Username'=$website.PublishingUsername; 'Password'=$website.PublishingPassword} $publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1" . $publishScript -publishProperties $publishProperties -packOutput $packOutput Start-AzureWebsite -Name $websiteName
资源: