在Azure中为ASP.NET Core Web应用程序设置SQL连接字符串
|
我在Visual Studio 2015中创建了一个新的ASP.NET Core Web应用程序。我还设置了一个Azure Web应用程序,以便从GitHub中提取应用程序并运行它。这工作正常,但我无法连接到Azure上的数据库。 在本地,这是有效的,它使用config.json并在代码Data:DefaultConnection:ConnectionString中用于连接字符串。 如何保留代码,并使其在Azure中运行?我已经尝试在门户中设置应用程序设置,包括连接字符串和应用程序设置。并使用“SQLCONNSTR_DefaultConnection”和“Data:DefaultConnection:ConnectionString”作为键。 (设置应用程序设置似乎不起作用。我认为我提供的值太长)。 那么如何在我的Azure Web应用程序(ASP.NET 5)中提供Azure数据库的连接字符串,而不在源代码管理中检入它? 更新 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
解决方法简短的回答
你很亲密 >转到Azure Web应用程序>配置>连接字符串。 使用timesheet_db而不是DefaultConnection的示例 这是我自己的时间表应用程序中的一个示例。我的连接字符串名为timesheet_db。只需用DefaultConnection替换该字符串的所有实例,以使示例适应您的用例。 Azure Web应用程序配置 Azure Web应用程序服务控制管理器 https://myWebAppName.scm.azurewebsites.net/Env的在线服务控制管理器将显示连接字符串。 Startup.cs 在“启动”中设置配置设置,以便环境变量覆盖config.json。 public IConfiguration Configuration { get; set; }
public Startup()
{
Configuration = new Configuration()
.AddJsonFile("config.json")
.AddEnvironmentVariables(); <----- will cascade over config.json
}
在“启动”中配置数据库。 public void ConfigureServices(IServiceCollection services)
{
services
.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ProjectContext>(options =>
{
var connString =
Configuration.Get("Data:timesheet_db:ConnectionString");
options.UseSqlServer(connString);
});
}
当然,该示例使用名为timesheet_db的连接字符串。对于您,使用您自己的名为DefaultConnection的连接字符串替换它的所有实例,一切都会起作用。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – MVC OAUTH VS2012模板,在哪里输入redirect_
- asp.net – .NET Core项目添加对.NET Framework项目的引用.
- asp.net-mvc – 在应用程序池回收后,如何预热我的asp.net m
- asp.net – 一个明智的PasswordStrengthRegularExpression
- 如何在ASP.NET MVC应用程序中组织JavaScript代码
- asp.net-mvc – ASP.NET MVC 3列表到IEnumerable
- asp.net-mvc – 神控制器 – 如何防止它们?
- asp.net-mvc – @ Html.ValidationSummary(true) – 真正的
- asp.net – 缓存解决方案
- 单元测试 – 单元测试项目不能参考MVC项目
- asp.net – 是果园还是Umbraco MVC?
- asp.net – 测试Oracle存储过程的最简单的方法
- asp.net – 将default.aspx重定向到根虚拟目录
- asp.net – 存储库模式最佳实践
- asp.net-mvc – Web API – 默认呈现Razor视图?
- 如何在使用ASP.NET MVC的jQuery AJAX调用中触发“
- asp.net-mvc-3 – 如何模拟查询字符串
- asp.net – 转义HTML实体并避免WebForm标签中的H
- asp.net webapi UseOAuthBearerAuthentication v
- asp.net – Googlebot导致.NET System.Web.HttpE
