代码之家  ›  专栏  ›  技术社区  ›  Dirk Boer

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

  •  3
  • Dirk Boer  · 技术社区  · 7 年前

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

    我已启用 Remove additional files at destination Precompile during Publishing 已打开。

    但是,当Web作业正在运行且我的临时站点未“停止”时,因为它仍处于预热状态,我会出现以下错误:

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

    (18-Jan-18 22:47:23)处理请求时出错 在远程计算机上。处理时遇到错误 操作“删除目录” “D:\home\site\wwwroot\App\u Data\jobs\continuous”。错误代码为 0x80070091。目录不为空。

    在 微软网状物部署。NativeMethods。RaiseIOExceptionFromErrorCode(Win32错误代码 错误代码,字符串maybeFullPath)位于 微软网状物部署。董事会。删除(字符串路径) 微软网状物部署。DirPathProviderBase。删除(布尔值 whatIf)项目X。Web 7 0

    我可以通过手动停止临时槽,上载它,然后再次启动它来修复此问题。但这相当麻烦。

    有解决方案吗?

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

    更新1

    <PropertyGroup>  
    <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
    </PropertyGroup>
    

    ...不适合我。

    更新2

    在临时插槽上添加WEBJOBS\u STOPPED设置对我不起作用。

    2 回复  |  直到 7 年前
        1
  •  5
  •   Ajay Yadav    7 年前

    由于您在Azure应用程序服务上启用了Application Insights,它在内部安装了一个扩展,该扩展启动了一个连续的web作业,并且与web作业相对应的内容已复制到App\u数据文件夹。实际的问题是,扩展数据被复制到App\u data文件夹中,其中只应驻留用户的数据,而不应驻留基础结构数据。

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

    即使您使用“App Offline”或“Stop web job”选项并成功删除所有内容,您的部署也会成功,但这样您的应用程序洞察就会损坏,因此您可能需要再次配置应用程序洞察。

    建议:

    选择跳过“App\u Data”文件夹以及“从目标中删除其他文件”选项。

    它将删除除App\U数据文件夹内容以外的所有内容,因此将跳过与Application Insights连续web作业相对应的dll文件。

    参考号: VSTS - Azure App Service Task Documentation

    限制

    虽然此解决方案有一个限制-如果要删除/修改现有的用户定义的web作业,则不能跳过App\u数据文件夹。在这种情况下,要么执行两步部署,要么重新安装application insight extension。

        2
  •  0
  •   Dirk Boer    7 年前

    我在另一个SO问题中发现了这一点:

    <PropertyGroup>
      <EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
      ...
    </PropertyGroup>
    

    ... 正在添加到发布配置文件(.pubxml)。

    完整答案如下: https://stackoverflow.com/a/20888597/647845

    更新

    这对我不起作用。也许对其他人来说。似乎忽略了设置。