Windows Azure网站的配置页面有一个“连接字符串”部分。该部分列出了链接资源的连接字符串。我们如何以编程方式检索链接的SQL Azure数据库的连接字符串?
解决方案
按照以下方式以编程方式检索连接字符串:
connString =
Environment.GetEnvironmentVariable("PREFIX_myConnStringName");
说明
Azure连接字符串变成环境变量。文档解释了Azure如何创建带有前缀的变量:
SQL Server: SQLCONNSTR_myConnStringName
MySQL: MYSQLCONNSTR_myConnStringName
SQL Database: SQLAZURECONNSTR_myConnStringName
Custom: CUSTOMCONNSTR_myConnStringName
SQL Azure: SQLAZURECONNSTR_myConnStringName
有了这个知识,我们可以使用以下代码检索所需的连接字符串:
connString =
Environment.GetEnvironmentVariable("SQLAZURECONNSTR_myConnStringName");
其他选项
作为另一个选项,这篇相关文章介绍了如何通过web.config访问连接字符串:
<add name="myConnStringName"
connectionString="you can leave this blank"
providerName="System.Data.SqlClient" />
<ul>
@foreach (System.Collections.DictionaryEntry ev in Environment.GetEnvironmentVariables())
{
if (ev.Value.ToString().ToLower().Contains("data source"))
{
<li><strong>@ev.Key.ToString()</strong> @ev.Value.ToString()</li>
}
}
</ul>
<ul>
@foreach (System.Configuration.ConnectionStringSettings cs in System.Configuration.ConfigurationManager.ConnectionStrings)
{
<li><strong>@cs.Name</strong> @cs.ConnectionString</li>
}
</ul>
现在就这些。
IConfiguration config = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var connection = _config.GetConnectionString("DatabaseConnection");