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

时间:2018-01-18 21:54:54

标签: azure publish azure-webjobs publishing

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

我启用了Remove additional files at destinationPrecompile during Publishing

但是当一个Web作业正在运行且我的暂存站点没有“停止”时,因为它仍然在预热 - 我收到以下错误:

  

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

     

(18-Jan-18 22:47:23)处理请求时发生错误   在远程计算机上。处理时遇到错误   操作'删除目录'   'd:\家\网站\ wwwroot的\ App_Data文件\ \工作不断'。错误代码是   0x80070091。该目录不为空。

     

在   Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode   errorCode,String maybeFullPath)at   Microsoft.Web.Deployment.DirectoryEx.Delete(String path)at   Microsoft.Web.Deployment.DirPathProviderBase.Delete(布尔   whatIf)ProjectX.Web 7 0

我可以通过手动停止暂存插槽,上传它,然后再次启动来解决此问题。但这非常麻烦。

有修复吗?

我在某处读过你可以在发布期间自动使(暂存)应用离线,但我找不到设置。

更新1

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

......不适合我。

更新2

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

2 个答案:

答案 0 :(得分:4)

由于您已在Azure应用服务上启用了Application Insights,因此它已在内部安装了一个扩展,该扩展启动了连续的Web作业,并将与Web作业相对应的内容复制到App_Data文件夹。实际问题是因为扩展数据被复制到App_Data文件夹,其中只有用户的数据而不是基础设施数据。

现在,当您选择&#34;从目的地删除附加文件&#34;在visual studio中,它尝试从App_Data文件夹中删除包括Application Insights数据在内的所有内容。由于Application Insights Web作业已在后台运行,因此锁定了相应的dll文件。

即使你选择&#34; App Offline&#34;或者&#34;停止网络工作&#34;并且能够成功删除所有内容,然后您的部署将成功,但这样您的Application Insights将被破坏,因此您可能必须再次配置Application Insights。

<强>建议:

选择跳过&#34; App_Data&#34;文件夹以及选项&#34;从目的地删除附加文件&#34;。

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

参考: VSTS - Azure App Service Task Documentation

<强> 限制

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

答案 1 :(得分:0)

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

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

...添加到您的发布配置文件(.pubxml)。

完整的答案在这里:https://stackoverflow.com/a/20888597/647845

<强>更新

这对我不起作用。也许是为了别人。似乎忽略了设置。