通过“Azure应用程序服务部署”部署webjob并在目标位置删除其他文件选项

问题描述:

我试图在VSTS上的单个发行版定义中部署多个webjobs。通过“Azure应用程序服务部署”部署webjob并在目标位置删除其他文件选项

我的问题是,我的网页作业中包含的文件可以更改(添加/更新/删除)。默认情况下,使用任务Azure app service deploy部署新版本时,不会从服务器中删除现有文件。这会导致我的webjob中的文件停留在我的服务器上并导致错误。

为了解决我的问题,我试图启用“在目的地删除附加文件”。但由于我必须在单独的任务中部署每个webjob(Azure app service deploy仅支持单个web包),因此每个连续部署都会删除先前部署的webjob的文件。

有关如何轻松解决这个问题的任何想法?

目前我唯一的猜测是通过powershell连接到web应用程序,并删除现有的webjob与命令行Remove-AzureWebsiteJob
但我主要关心的是关于删除整个webjob(s),我认为也会删除他们的日志和执行历史...

+0

使用powershell任务来运行这些功能 https://*.com/questions/43801618/remove-files-and-foldes-on-azure-before-a-new-deploy-from-vsts – vip32

有一种方法,你可以做到这一点,没有很好的文件,通过使用wawsdeploy tool

后,你得到的巧克力工具:

  • 下载你的应用程序的发布配置文件形式的门户。
  • 转到您想要为特定Web工作部署文件的文件夹。
  • 运行:wawsdeploy . c:\folderwithyourprofile\YourApp.PublishSettings /t D:\home\site\wwwroot\App_Data\jobs\continuous\YourJob /d

这里,/d使其删除所有未知文件一个文件夹内,所以它不会碰你的其他WebJobs。您可以先尝试运行它,而不使用/d来熟悉该工具,并确保它在开始删除东西之前将文件放在正确的位置。

请注意,仅使用msdeploy命令行就可以做类似的事情,但它需要一组非常复杂的参数。有关详情,请参阅我的post

+0

感谢解释,但我的构建/发布定义运行在VSTS托管代理上,它不允许我任何管理权限(如使用choco或在代理上安装新包)。我会看看你的文章,就好像WAWSDeploy只是一个围绕msdeploy的包装,如果我可以通过开销,我应该能够达到相同的结果 – GGirard

+0

是的,你应该能够直接使用msdeploy.exe,但是命令行语法令人望而生畏。 VSTS是否有可以使用的msdeploy任务? –

+0

这些都不允许我只清除我的天蓝色网络应用程序上的webjob文件夹 – GGirard