windows server 2012中laravel应用程序队列的权限问题

windows server 2012中laravel应用程序队列的权限问题,windows,laravel,iis,jobs,Windows,Laravel,Iis,Jobs,我们在WIndows Server 2012 R2中部署了一个laravel应用程序(版本5.5*)。但我们的开发堆栈是LEMP。相同的代码库在开发堆栈中工作正常,但在WINDOWS SERVER中失败 问题: 在我们的应用程序中,有一个报告下载可排队作业,它从数据库表中读取数据,并根据用户输入的日期范围(每日、每周、每月等),使用box/spout包(2.7版)生成excel文件 以管理员身份从cmd运行队列:work命令时, $writer->openToFile('path/to/file

我们在WIndows Server 2012 R2中部署了一个laravel应用程序(版本5.5*)。但我们的开发堆栈是LEMP。相同的代码库在开发堆栈中工作正常,但在WINDOWS SERVER中失败

问题: 在我们的应用程序中,有一个报告下载可排队作业,它从数据库表中读取数据,并根据用户输入的日期范围(每日、每周、每月等),使用box/spout包(2.7版)生成excel文件

以管理员身份从cmd运行队列:work命令时,
$writer->openToFile('path/to/file')
引发错误:无法打开流:没有这样的文件或目录。

我尝试过的解决方案:
  • 为我的项目的存储文件夹(针对用户、IIS\U IUSR、IUSR)设置权限(完全控制读写)
  • 为C:windows\Temp文件夹(针对用户、IIS\U IUSR、IUSR)设置正确权限(完全控制读写)
  • 已为公用文件夹中的存储文件夹创建符号链接
供参考:
  • 操作系统:windows server 2012 r2
  • PHP:7.2*
  • 拉雷维尔:5.5*
  • 盒子/喷口包装:2.7*

**在阅读了与此问题相关的其他问题的答案后,终于找到了解决方案**

您可以按照以下步骤操作:

  • 转到IIS管理器
  • 选择站点下列出的所需项目(例如:myexampledomain.com)

  • 转到安全性选项卡,您将看到列出的用户及其对文件夹的权限

  • 现在,单击编辑按钮转到新窗口并单击添加。在文本框中,键入
    IIS-AppPool\MyApplicationPoolName
    。在我们的示例中,它应该是
    IIS-AppPool\myexampledomain.com

  • 单击检查名称,您将看到带有下划线的测试更改

  • 单击确定。向新创建的用户添加适当的权限(修改、读取、写入)

就这样


感谢大家的回复。

您是否尝试了其他文件夹?能否共享一些示例代码以重现此问题?您的应用程序池正在哪个标识下运行?请尝试设置应用程序池标识网络服务。@thmspl很抱歉回复太晚!是的,我使用了不同的文件夹。我的代码库不在inetpub的wwwroot文件夹内。@JalpaPanchal应用程序池名称与站点名称相同。我在引起问题的代码段上方附加了一个图像链接。您在“openToFile”功能中配置了什么路径?