将 .Net Core 2.0 和 Angular4 部署到 AWS 后无法发布到 Sqlite 数据库
Posted
技术标签:
【中文标题】将 .Net Core 2.0 和 Angular4 部署到 AWS 后无法发布到 Sqlite 数据库【英文标题】:Can't post to Sqlite Database after deploying .Net Core 2.0 and Angular4 to AWS 【发布时间】:2018-06-15 18:32:21 【问题描述】:在将 Angular 4.0 Universal 和 ASP.NET Core 2.0 高级入门工具包成功部署到 Elastic Beanstalk(此处:http://asp2017-prod.us-east-2.elasticbeanstalk.com/home)后,我注意到 Rest API Demo 部分成功返回了用户的 GET 请求,但是POST 和 DELETE 请求会导致 500 错误。将远程调试器附加到进程后,我收到数据库是只读的错误。我远程将 IIS_IUSRS 角色设置为 .DBA 文件并重新启动了实例。
现在我收到以下错误:SQlite Error 14: 'unable to open database file'。
GET 请求仍然有效。只有 POST、PUT 和 DELETE 失败。
作为比较,这种精确的部署在 Azure 上运行良好。 (这里:http://asp201720180103014313.azurewebsites.net/users)
【问题讨论】:
500 错误可能由多种原因产生,例如您的 sqlite 数据库可能被锁定,或者您的数据库没有表等。检查响应并为我们提供更多信息以帮助您(响应可以是显示错误的 html) 【参考方案1】:我将在这里回答我自己的问题。
致 Elastic Beanstalk 的所有未来 AWS 开发人员:这些实例专门设计为不可变的。数据库读取为无法打开或只读的原因是因为这些实例由于其短暂的性质而厌恶写入更改。简单地说,平面文件数据库在 EB 实例上是不可接受的。使用其他东西,或启动虚拟服务器。
【讨论】:
以上是关于将 .Net Core 2.0 和 Angular4 部署到 AWS 后无法发布到 Sqlite 数据库的主要内容,如果未能解决你的问题,请参考以下文章
用VSCode开发一个asp.net core2.0+angular5项目: Angular5+asp.net core 2.0 web api文件上传
在 asp.net core 2.0 中使用 angular 5 上传文件。文件为空
无论用户登录如何,如何保护 Angular / .NET Core 2.0 应用程序中的所有 api 调用
将 JWT Bearer Authentication Web API 与 Asp.Net Core 2.0 结合使用的问题