如何为弹性beanstalk窗口应用程序设置文件夹权限?

Eli*_*uni 5 windows amazon-ec2 amazon-web-services asp.net-web-api amazon-elastic-beanstalk

我目前正在构建一个C#WebApi 2应用程序,我将上传到Amazon Elastic Beanstalk实例进行部署.到目前为止我已经取得了成功,在我的本地机器上,我刚刚完成了对文件上传功能的测试,以便客户端上传图像.

不言而喻的方式是我接受的网络API的多/ FORMDATA并保存临时文件(与像BodyPart_24e246c7-a92a-4a3d-84ef-c1651416e667随机名称)到App_Data文件夹.临时文件放入S3 Bucket,我在SQL Server数据库中创建一个引用.

测试正常工作与单个或多个文件上传本地但当我将应用程序部署到弹性青苗和尝试上载我得到这样的错误"找不到路径"一部分C:\的Inetpub\wwwroot的\ sbeAPI_deploy\App_Data文件\ BodyPart_8f552d48- ed9b-4ec2-9986-88cbffd673ee'"或类似的说完全拒绝访问.

我一直在尝试在线找到解决方案几个小时,但AWS文档到处都是,教程/其他问题似乎已经过时了.我认为它与没有在EC2服务器上写临时文件的权限有关,但我无法弄清楚如何修复它.

首先十分感谢.

bic*_*cle 5

自 2013 年 4 月以来,这已经成为可能,另请参见此处:基本上您需要执行的步骤如下:

  1. 通过解决方案资源管理器在项目的顶层创建一个名为 .ebextensions 的文件夹
  2. 在此文件夹中添加您的配置文件,例如myapp.config(将 myapp 替换为您的 Elastic Beanstalk 的应用程序名称)
  3. 将下面显示的代码添加到您刚刚创建的配置文件中。替换MyApp为 Visual Studio 中显示的项目名称(不是解决方案名称)
  4. 搞定!!确保App_Data 中有一个文件,否则 Visual Studio 不会发布它。

    {
        "containercommands": {
            "01-changeperm": {
                "command": "icacls \"C:/inetpub/wwwroot/MyApp_deploy/App_Data\" /grant DefaultAppPool:(OI)(CI)"
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)