Azure WebJob-创建目录失败

时间:2018-08-28 03:50:46

标签: visual-studio azure azure-devops azure-webjobs

我正在尝试从VisualStudio发布一个天蓝色的webjob,但是它失败并出现错误

  

处理操作“创建目录”时遇到错误   在“ D:\ home \ site \ wwwroot \ app_data”上。错误代码为0x80070002。   找不到文件“ D:\ home \ site \ wwwroot \ app_data”。在   Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCode   errorCode,可能是String(FullPath))   Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(字符串路径)
  在Microsoft.Web.Deployment.DirPathProviderBase.CreateDirectory(String   fullPath,DeploymentObject源)位于   Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject   源,布尔值whatIf)发布无法部署。

当我在门户网站中登录此WebApp并打开终端时,看不到web_app文件夹。当我尝试使用mkdir创建它时,它会失败并显示

  

系统找不到指定的文件。

我对其进行了更多测试-无法在其中创建任何文件夹!

为什么wwwroot文件夹可能被锁定?

如果我在其他WebApp上尝试相同的操作-一切正常。我不想重新创建webapp

更新

使用WEBSITE_RUN_FROM_ZIP = 1选项部署应用程序。它是一个.NetCore 2.1 Web应用程序。

所以下一个问题是:

1)如何使用dotbet publish命令将要发布的WebJob应用程序添加到与webapp相同的程序包中? (类似于https://stackoverflow.com/a/50046561/1300049

2)还是如何将WebJob部署到VSTS中的替代位置(如d:\home\site\jobs\)?

更新2

找到了我不太喜欢的解决方法。但这有效。但是,我乐于寻求更好的解决方案。

此答案基于以下列出的2个答案(https://stackoverflow.com/a/40049524/1300049https://stackoverflow.com/a/46661421/1300049):

1)在构建阶段,使用带有类似于此答案中所提供的魔幻参数的MSBuild来构建整个解决方案-https://stackoverflow.com/a/46661421/1300049

2)然后,仍处于构建阶段,为webapp项目运行dotnet publish,但无需压缩

3)作为构建的最终协议,将webjob的“ app_data”(来自步骤1)复制到webapp的发布位置(步骤2),并将其全部压缩在一起。

4)在发布阶段,照常使用工件进行部署。只要确保您删除了使用“ WEBJOBS_ROOT_PATH”环境变量来解决问题的所有先前尝试...

1 个答案:

答案 0 :(得分:1)

对我有用的是进入Azure门户,删除“ WEBSITE_RUN_FROM_ZIP”配置设置,然后重新发布。