首页 > 解决方案 > 如何连接到数据库?

问题描述

将我的应用程序部署到 AWS 后无法从服务器获得响应。

我刚刚从Microsoft 教程中创建了小型 REST 服务器应用程序。我还尝试使用 UseSqlServer 从 Amazon Db 复制连接字符串。

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<GameContext>(opt =>

    opt.UseSqlServer(/* AmazonDbConnectionString */);

    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

当我在本地计算机上启动它时,它似乎可以工作:我将数据插入 DbTable 并使用 Sql Server Management Studio 查看更改。但是当我将它发布到 AWS 时它不起作用:我可以加载默认的 ValueController 并获得响应 [value1, value2]。所以毫无疑问该应用程序正在运行,但无法获得 DbDataController 的响应。

我也尝试遵循亚马逊教程并使用 ConfigurationManager.AppSettings 但它总是返回 null 。

[HttpGet("connection")]
public ActionResult<string> Get()
{
      return "ConnectionString: " + GameContext.GetRDSConnectionString();
}
...
public static string GetRDSConnectionString()
{
      var appConfig = ConfigurationManager.AppSettings;
      string dbname = appConfig["RDS_DB_NAME"];
      if (string.IsNullOrEmpty(dbname)) return null;
      string username = appConfig["RDS_USERNAME"];
      string password = appConfig["RDS_PASSWORD"];
      string hostname = appConfig["RDS_HOSTNAME"];
      string port = appConfig["RDS_PORT"];
      return "Data Source=" + hostname + ";Initial Catalog=" + dbname + ";User ID=" + username + ";Password=" + password + ";";
}

标签: c#restamazon-rds

解决方案


我用它从 Appsetting 中获取价值及其对我的工作:

//Appsetting
"ApplicationConfigurations": {
    "SendSmsActive": "true"
  }
//Controller
  public class HomeController : Controller
  {
        private readonly IConfiguration _configuration;
        public HomeController( IConfiguration configuration)
        {
            _configuration = configuration;
        }
        public string GetConfig()
        {
             string str = _configuration["ApplicationConfigurations:SendSmsActive"].ToString();
        }
  }

推荐阅读