我正在尝试从VisualStudio发布一个天蓝色的webjob,但是它失败并出现错误
处理处理'创建目录'时遇到错误在“ D:\ home \ site \ wwwroot \ app_data”上。错误代码为0x80070002。找不到文件“ D:\ home \ site \ wwwroot \ app_data”。在Microsoft.Web.Deployment.NativeMethods.RaiseIOExceptionFromErrorCode(Win32ErrorCodeerrorCode,可能是String(FullPath))Microsoft.Web.Deployment.DirectoryEx.CreateDirectory(字符串路径)在Microsoft.Web.Deployment.DirPathProviderBase.CreateDirectory(StringfullPath,DeploymentObject源)位于Microsoft.Web.Deployment.DirPathProviderBase.Add(DeploymentObject源,布尔值whatIf)发布无法部署。
当我在门户网站中登录此WebApp并打开终端时,看不到web_app文件夹。当我尝试使用mkdir
创建它时,它失败,并带有
系统找不到指定的文件。
我进行了更多测试-无法在其中创建任何文件夹!
为什么wwwroot
文件夹可能被锁定?
如果我在其他WebApp上尝试相同的操作-一切正常。我不想重新创建webapp
UPDATE
使用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\
?
UPDATE 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”环境变量来解决问题的所有先前尝试即可...
对我有用的是进入Azure门户,删除“ WEBSITE_RUN_FROM_ZIP”配置设置,然后重新发布。