【问题标题】:Azure WebJob - Create Directory failsAzure WebJob - 创建目录失败
【发布时间】:2018-08-28 03:50:46
【问题描述】:

我正在尝试从 VisualStudio 发布一个 azure webjob,但它失败并出现错误

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

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

系统找不到指定的文件。

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

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

如果我用不同的 WebApp 尝试同样的事情 - 一切正常。我不想重新创建 webapp

更新

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

那么下一个问题是:

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/1300049 和 https://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”环境变量解决问题的所有尝试...

【问题讨论】:

  • 你是不是碰巧running from a zip package?
  • @DavidEbbo,是的,我们有 WEBSITE_RUN_FROM_ZIP = 1
  • 通常情况下,在使用 VS 时,Web 应用程序和 Webjobs 应该一起部署在一个包中,而不是作为单独的手势。
  • @DavidEbbo 对,感谢您指出这一点。您是否知道如何在 VSTS 中将 webjob 部署到 d:\home\site\jobs\?
  • @DavidEbbo 找到了您的答案之一:stackoverflow.com/a/50046561/1300049。对于在 Visual Studio 中配置为控制台应用程序的 .NetCore 2.1 webapp,是否可以以某种方式重复这些步骤?

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


【解决方案1】:

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

【讨论】:

  • 感谢您的建议!如果需要,您还可以从 devops 管道更改部署方法,但我的目标是继续从 zip 运行 - 更好的部署性能和良好隔离的温暖感觉:)
  • 同样我不得不删除“WEBSITE_RUN_FROM_PACKAGE”配置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多