【发布时间】:2017-11-15 20:36:45
【问题描述】:
我正在亚马逊 AWS 上创建一个 .NET Core Web API,即 Elastic Beanstalk。 我正在尝试添加数据库,但他们的添加数据库指南不适用于 .Net Core http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.rds.html
它说使用“ConfigurationManager.AppSettings;”获取相关信息,但这在 .NET Core 中是不可能的。
谁能提供一些关于如何获取数据库信息的信息? ( “RDS_DB_NAME” “RDS_USERNAME” “RDS_PASSWORD” “RDS_HOSTNAME” )
更新 我试图阅读https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration 但我还没有解决问题。我似乎仍然无法从 AWS 获取值。
它只返回我在自己的 appsettings.json 中设置的任何内容 这是我的代码: 我的选项.cs
public class MyOptions
{
public MyOptions()
{
// Set default value.
}
public string RDS_HOSTNAME { get; set; }
public string RDS_PORT { get; set; }
public string RDS_DB_NAME { get; set; }
public string RDS_USERNAME { get; set; }
public string RDS_PASSWORD { get; set; }
}
StartUp.cs
public void ConfigureServices(IServiceCollection services)
{
// Register the IConfiguration instance which MyOptions binds against.
services.Configure<MyOptions>(Configuration);
// Add framework services.
services.AddApplicationInsightsTelemetry(Configuration);
services.AddMvc();
}
HomeController.cs
namespace WebApplication2.Controllers
{
[Route("")]
public class HomeController : Controller
{
private readonly MyOptions _options;
public HomeController(IOptions<MyOptions> optionsAccessor)
{
_options = optionsAccessor.Value;
}
[HttpGet]
public IActionResult Index()
{
var RDS_DB_NAME = _options.RDS_DB_NAME;
var RDS_HOSTNAME = _options.RDS_HOSTNAME;
var RDS_PASSWORD = _options.RDS_PASSWORD;
var RDS_PORT = _options.RDS_PORT;
var RDS_USERNAME = _options.RDS_USERNAME;
return Content($"RDS_DB_NAME = {RDS_DB_NAME}, RDS_HOSTNAME = {RDS_HOSTNAME}, RDS_PASSWORD = { RDS_PASSWORD}, RDS_PORT = {RDS_PORT}, RDS_USERNAME = { RDS_USERNAME}");
}
}
}
【问题讨论】:
-
你应该在docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration查看dotnet core中的配置管理
-
谢谢巴巴克。我读了它,但我不知道如何让它工作。如果您有时间提供更多帮助,我现在已经在 OP 中编写了我的代码。否则谢谢。
标签: c# amazon-web-services .net-core amazon-rds asp.net-core-webapi