ASP.Net AWS EBS 的核心 - 写入权限和 .ebextensions
ASP.Net Core at AWS EBS - write permissions and .ebextensions
我们已在 AWS EBS 上部署 ASP.Net 核心应用程序,但在其上写入文件时遇到问题。
Access to the path C:\inetpub\AspNetCoreWebApps\app\App_Data\file.txt
is denied
我添加了 .ebextensions\[app_name].config
但它什么也没做
{
"container_commands": {
"01": {
"command": "icacls \"C:/inetpub/AspNetCoreWebApps/app/App_Data\" /grant DefaultAppPool:(OI)(CI)"
}
}
}
我知道这是权限问题,因为当我 RDP 到机器并手动更改权限时,问题就解决了。我想在部署期间使用 .ebextensions\[app_name].config
.ebextensions\[app_name].config
运行 在部署之前和部署期间文件夹被重新创建 - 这就是它不起作用的原因。我通过将 postInstall
Power Shell 脚本添加到 aws-windows-deployment-manifest.json
:
来修复它
"scripts": {
"postInstall": {
"file": "SetupScripts/PostInstallSetup.ps1"
}
# # PostInstallSetup.ps1 #
$SharePath = "C:\inetpub\AspNetCoreWebApps\app\App_Data"
$Acl = Get-ACL $SharePath
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("DefaultAppPool","full","ContainerInherit,Objectinherit","none","Allow")
$Acl.AddAccessRule($AccessRule)
Set-Acl $SharePath $Acl
我们已在 AWS EBS 上部署 ASP.Net 核心应用程序,但在其上写入文件时遇到问题。
Access to the path
C:\inetpub\AspNetCoreWebApps\app\App_Data\file.txt
is denied
我添加了 .ebextensions\[app_name].config
但它什么也没做
{
"container_commands": {
"01": {
"command": "icacls \"C:/inetpub/AspNetCoreWebApps/app/App_Data\" /grant DefaultAppPool:(OI)(CI)"
}
}
}
我知道这是权限问题,因为当我 RDP 到机器并手动更改权限时,问题就解决了。我想在部署期间使用 .ebextensions\[app_name].config
.ebextensions\[app_name].config
运行 在部署之前和部署期间文件夹被重新创建 - 这就是它不起作用的原因。我通过将 postInstall
Power Shell 脚本添加到 aws-windows-deployment-manifest.json
:
"scripts": {
"postInstall": {
"file": "SetupScripts/PostInstallSetup.ps1"
}
# # PostInstallSetup.ps1 #
$SharePath = "C:\inetpub\AspNetCoreWebApps\app\App_Data"
$Acl = Get-ACL $SharePath
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("DefaultAppPool","full","ContainerInherit,Objectinherit","none","Allow")
$Acl.AddAccessRule($AccessRule)
Set-Acl $SharePath $Acl