在Azure中设置ASP.NET 5 Web应用程序的SQL连接字符串
我在Visual Studio 2015中创建了一个新的ASP.NET 5(MVC 6)Web应用程序。我还设置了一个Azure Web应用程序,从GitHub中拉入应用程序并运行它。这可以正常工作,但是我无法连接到Azure上的数据库。
在本地工作,它使用config.json和代码Data:DefaultConnection:ConnectionString为连接字符串。 我如何离开代码,并在Azure中工作?我尝试在门户中设置应用程序设置,包括连接字符串和应用程序设置。并使用“SQLCONNSTR_DefaultConnection”和“Data:DefaultConnection:ConnectionString”作为关键字。 (设置应用程序设置似乎没有办法,我认为我提供的价值太长)。 那么,如何将Azure数据库的连接字符串提供给我的Azure Web应用程序(ASP.NET 5),而不是在源代码控制中进行检查? 更新 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网络应用程序>配置>连接字符串。 使用timesheet_db而不是DefaultConnection的示例 这是我自己的时间表应用程序的一个例子。我的连接字符串被命名为timesheet_db。只需使用DefaultConnection替换该字符串的所有实例,以使示例适应您的用例。 Azure网络应用配置 Azure网络应用服务控制管理器 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 – 在编辑视图中持久保存实体密钥的更安全的方法?
- asp.net-mvc – 我应该如何管理ASP.NET MVC 4应用程序中的成
- asp.net – GET与POST真的很重要吗?
- asp.net-mvc – ValidationMessage仅适用于model和html属性
- asp.net-mvc – Visual Studio不允许在MVC视图中使用断点
- asp.net – 保护ELMAH,同时可以通过RSS阅读器访问它
- asp.net-mvc – 映射从域实体到DTO的验证属性
- asp.net – ‘ToArray’不是’String’的成员
- 调试 – 使用ASP.Net Core在VSCode中调试Typescript
- ASP.NET MVC 使用 Datatables (2)
- asp.net-mvc – Unity无法解析依赖关系
- asp.net-mvc – 在IIS 6上托管ASP.NET MVC时是否
- ASP.NET:使用Request [“param”]与使用Request
- asp.net-mvc – Unity和Random“索引超出了数组的
- asp-classic – ADODB.Field错误’800a0bcd’
- asp.net – 使用Visual Studio 2008 Web部署项目
- asp.net-mvc – MVC ModelMetaData属性和格式化D
- 七步学会ASP.NET Core 2.0怎么发布\/部署到U
- asp.net-mvc – Web API模型绑定器不能与HttpPos
- asp.net – 浏览器关闭后的身份验证/会话cookie删