![](/img/trans.png)
[英]AWS Elastic beanstalk: ASP.NET Cors configuration not allowing hosts
[英]Elastic Beanstalk not running any commands when deploying asp.net using “Publish to AWS” Visual Studio command
我剛剛在AWS服務(微型,免費)上注冊,並嘗試部署asp.net mvc 4應用程序。 一切工作正常,已部署Web應用程序並運行(Web部件,數據庫等),但是當我嘗試寫入文件系統時(例如,當我保存文件時),我卻遇到了異常
System.UnauthorizedAccessException:訪問路徑'C:\\ inetpub \\ wwwroot.logs \\ xxx.log
文件夾“ C:\\ inetpub \\ wwwroot \\ .logs”存在。
我試圖使用命令向DefaultAppPool授予文件夾權限。 我有以下Web項目結構:
aws.cofig具有以下內容:
container_commands:
01-logscreate:
command: "mkdir C:\inetpub\wwwroot\.logs > create-logs.log"
cwd: "C:/inetpub/wwwroot/.ebextensions"
01-logspermission:
command: "icacls \"C:/inetpub/wwwroot/.logs\" /grant DefaultAppPool:(OI) (CI) > p-logs.log"
cwd: "C:/inetpub/wwwroot/.ebextensions"
當我訪問文件時,我使用解析完整路徑
HostingEnvironment.MapPath("~/.logs/xxx.log")
但是,當我嘗試寫入此文件時,出現異常。
部署包中“ .ebextensions”的相對路徑為
內容\\ D_C.git \\ udsmonitoring.app \\ WebHost \\ obj \\ Debug \\ Package \\ PackageTmp \\ .ebextensions
提前感謝
部署的應用程序池以有限的權限運行。 它無權寫入該目錄。
此外,您確實不需要將日志寫入實例文件系統本身。 這些實例是瞬態的。 如果您需要日志記錄解決方案,請考慮使用CloudWatch或LogEntries。 兩者都可能適合您現有的代碼庫,只需更改配置文件即可。 通常,如果您要執行的操作最終導致您需要遠程進入EC2實例以執行或查看操作,請考慮采用其他方法。
最后,如果確實需要從應用程序上下文中寫入該目錄,則可以在ebextensions中添加一個命令,該命令使用appcmd將應用程序池標識設置為具有更大特權的目錄...明確設置目錄權限的命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.