在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 – 如何在Html.TextBox帮助器中设置一个css类?
- asp.net – 会员更改密码
- asp.net – 通过Web请求从设备获取唯一的静态ID
- asp.net :( c#client-side)如何访问页面加载后创建的html元
- asp.net-mvc – MVCGrid.Net排序问题 – sortdirection
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automap
- asp.net-mvc – Razor视图没有布局
- asp.net-mvc – 如何动态绑定kendo mvc ui dropdownlist
- .net – 如何使用Roslyn添加对内存流中编译的类型的引用?
- asp.net-mvc – 在操作之间传递参数
- asp.net-mvc – 确定哪个控制器和操作在ASP.NET
- asp.net-mvc – 在MVC3 Razor视图引擎中设置文本
- asp.net-mvc – 同时发送文件并重定向到新页面的
- asp.net – 在IIS上运行Python和Django
- asp.net-mvc – 如何使用ASP.NET Core,2.0中的Ra
- asp.net-mvc – 吉米·博加德:“阿贾克斯非常非
- asp.net-web-api – 我可以在WebAPI messageHand
- asp.net-mvc – 如何使用ASP.NET MVC创建仪表板用
- asp.net – 在web.config中设置信任级别
- asp.net – 如何将razor变量作为参数传递给jquer