我正在尝试从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/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”环境变量来解决问题的所有先前尝试...
答案 0 :(得分:1)
对我有用的是进入Azure门户,删除“ WEBSITE_RUN_FROM_ZIP”配置设置,然后重新发布。