Azure-Web部署任务失败。在(Application Insights)上处理操作“删除目录”时遇到错误

Dir*_*oer 3 publish publishing azure azure-webjobs

我正在使用Visual Studio中的右键单击发布直接发布到Azure中的暂存槽。我添加了Application Insights,将WebJob添加到了我的应用程序中。

我已启用Remove additional files at destinationPrecompile during Publishing开启。

但是,当Web Job正在运行并且我的暂存站点未“停止”时,因为它仍在预热中,因此出现以下错误:

Web部署任务失败。((18-Jan-18 22:47:23)在远程计算机上处​​理请求时发生错误。

(18-Jan-18 22:47:23)在远程计算机上处​​理请求时发生错误。在'D:\ home \ site \ wwwroot \ App_Data \ jobs \ continuous'上处理操作'Delete Directory'时遇到错误。错误代码为0x80070091。目录不为空。

Microsoft.Web.Deployment.DirPathProviderBase.Delete(Boolean whatIf)Microsoft.Web.Deployment.DirectoryEx.Delete(String path)上的Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode errorCode,String mayFullPath)ProjectX.Web 7 0

我可以通过手动停止暂存插槽,上传并重新启动来解决此问题。不过这很麻烦。

有解决办法吗?

我读到某个地方,您可以在发布过程中自动使(登台)应用程序脱机,但是找不到该设置。

更新1

<PropertyGroup>  
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

...对我不起作用。

更新2

在暂存插槽中添加WEBJOBS_STOPPED设置对我不起作用。

Aja*_*dav 5

在Azure应用服务上启用Application Insights后,它在内部安装了一个扩展程序,该扩展程序启动了一个连续的Web作业,并且与该Web作业相对应的内容已复制到App_Data文件夹中。实际的问题是因为扩展数据被复制到App_Data文件夹中,该文件夹中仅应包含用户数据而非基础结构数据。

现在,当您在Visual Studio中选择选项“从目标中删除其他文件”时,它将尝试从App_Data文件夹中删除所有内容,包括Application Insights数据。由于Application Insights Web作业已经在后台运行,因此相应的dll文件被锁定。

即使您选择了“ App脱机”或“停止Web作业”选项并成功删除了所有内容,您的部署也会成功,但是这样一来,您的Application Insights将被破坏,因此您可能必须再次配置Application Insights。

建议:

选择跳过“ App_Data”文件夹以及选项“从目标删除其他文件”。

它将删除除App_Data文件夹内容以外的所有内容,因此将跳过与Application Insights连续Web作业对应的dll文件。

参考: VSTS-Azure应用服务任务文档

局限性

尽管此解决方案有局限性-如果要删除/修改现有的用户定义的Web作业,则不能跳过App_Data文件夹。在这种情况下,要么必须执行两步部署,要么必须重新安装应用程序洞察扩展。