我一直在尝试使用.ebextensions container_commands将IIS APPPOOL \ DefaultAppPool用户写入wwwroot文件夹下的两个文件夹。
我需要涵盖两种情况:
我能够执行后者而不是前者。前者失败是因为我在wwwroot下指定了文件夹的路径我想要更改哪些权限但是尚未将解决方案部署到wwwroot导致错误消息:"系统不能找到指定的文件。"
我尝试了另一种方法,我将DefaultAppPool写入权限授予整个wwwroot文件夹,希望在解压缩项目时,新添加的文件夹将继承wwwroot的权限。当我这样做,并将icacls命令的输出记录到文件时,我可以验证是否确实为wwwroot添加了写权限。尽管能够在.ebextensions运行时验证是否添加了写入权限,但它们在部署过程中稍后会以某种方式更改回其原始状态(仅读取),可能是:
c:\Program Files\Amazon\ElasticBeanstalk\Tools\Deploy.exe
这是我用来验证权限已更改的.config文件:
container_commands:
00_dir:
command: dir c:\inetpub\wwwroot >> c:\cfn\perms.log 2>&1
waitAfterCompletion: 0
01_what_perms:
command: icacls.exe c:\\inetpub\\wwwroot >> c:\\cfn\\perms.log 2>&1
waitAfterCompletion: 0
02_changeperm:
command: icacls.exe c:\\inetpub\\wwwroot /grant "IIS AppPool\DefaultAppPool":(OI)(CI)W >> c:\\cfn\\perms.log 2>&1
waitAfterCompletion: 0
03_what_perms:
command: icacls.exe c:\\inetpub\\wwwroot >> c:\\cfn\\perms.log 2>&1
waitAfterCompletion: 0
04_dir:
command: dir c:\inetpub\wwwroot >> c:\cfn\perms.log 2>&1
waitAfterCompletion: 0
因此我问:
有没有办法授予DefaultAppPool用户写入权限 这两个文件夹在发布到新EBS时都有效 环境以及何时重新发布到现有环境?
有没有办法在应用程序运行后运行命令 部署到wwwroot,但不是之前的container_commands吗?
当我查看我的.ebextensions .config文件中的日志时,我看到了 他们跑了两次,这是正常的吗?