【问题标题】:.NET Core Entity Framework on AWSAWS 上的 .NET Core 实体框架
【发布时间】:2017-12-15 19:08:14
【问题描述】:

我有一个用 .NET Core 编写的 Web 应用程序,它使用 Entity Framework 连接到 SQL Server 数据库。在本地一切正常。该应用程序的暂存/生产环境是 AWS Elastic Beanstalk,我似乎对如何让应用程序连接到那里的数据库感到困惑。

我在 Elastic Beanstalk 应用程序下创建了一个 RDS (SQL Server) 数据库。

连接字符串:

user id=[USER];password=[PASSWORD];Data Source=[SERVER].rds.amazonaws.com:1433;Initial Catalog=Development

创建 DbContext:

services.AddDbContext<MyDbContext>(o =>
                o.UseSqlServer(Configuration["Db:ConnectionString"]));

应用无法启动,基于 Startup.cs 中的以下行:

dbContext.Database.EnsureCreated();

【问题讨论】:

  • 您会发布确切的例外情况还是希望我们猜:您可能会遇到什么错误?
  • 我在获取特定错误消息时遇到了一些麻烦(我对 AWS 有点陌生)。我认为它无法连接到数据库,但我将如何获得更多信息。我在应用程序的日志中没有看到任何内容。
  • 如何运行你的 rapp?当您在 IIS 中托管它时,您可以使用 web.config 启用日志记录(如果控制台输出打开)。在 linux 上,快速解决方法是将控制台输出通过管道传输到文件。或安装适当的日志记录提供程序
  • 或者做一个远程调试会话:blogs.msdn.microsoft.com/devops/2017/01/26/…
  • 我原以为应该有一个关于这个的博客,但谷歌没有给我任何信息。如果您找到了解决方案,请分享。另外,您是否尝试询问 AWS 支持?

标签: entity-framework amazon-web-services asp.net-core amazon-elastic-beanstalk


【解决方案1】:

您必须按照以下步骤逐步排除故障:

  1. Db 连接字符串是否有效?更好地与其他应用程序一起使用,并且简单地进行 Db 连接测试。防火墙可能会阻止您的端口 1433。
  2. 根据您的代码,.NET Core Framework 将通过代码优先的方法创建一个数据库。因此,您必须确保您的 IIS 应用程序池用户帐户对 SQL 数据库具有写入权限。 很可能是您的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 2010-10-24
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多