Я создал новое веб-приложение ASP.NET Core в Visual Studio 2015. Я также создал веб-приложение Azure, чтобы вытащить приложение из GitHub и запустить его. Это отлично работает, но у меня возникли проблемы с подключением к базе данных на Azure.
Локально это работает, и он использует config.json
и в коде Data:DefaultConnection:ConnectionString
для строки подключения.
Как я могу оставить код таким, какой он есть, и заставить его работать в Azure? Я попытался настроить параметры приложения на портале, как строки подключения, так и параметры приложения. И используя как "SQLCONNSTR_DefaultConnection", так и "Data: DefaultConnection: ConnectionString" в качестве ключа.
(Настройка параметров приложения, похоже, не работает. Я думаю, что значение, которое я предоставляю, слишком длинное).
Итак, как я могу предоставить строку подключения для своей базы данных Azure для своего веб-приложения Azure (ASP.NET 5), не проверив ее в исходном элементе управления?
Обновление Мой Startup.cs выглядит так (см. полный файл на GitHub):
public Startup(IHostingEnvironment env)
{
var configuration = new Configuration()
.AddJsonFile("config.json")
.AddJsonFile($"config.{env.EnvironmentName}.json", optional: true);
if (env.IsEnvironment("Development"))
{
configuration.AddUserSecrets();
}
configuration.AddEnvironmentVariables();
Configuration = configuration;
}
В методе ConfigureServices
есть также:
services.Configure<AppSettings>(Configuration.GetSubKey("AppSettings"));
а также в методе ConfigureServices
:
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]))
.AddDbContext<InvoicesDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
// So this is where I want my app in Azure to use the connection string I
// provide in the portal