在调试localhost时使用Environment.GetEnvironmentVariable()访问Azure中的连接字符串

时间:2016-12-10 22:32:47

标签: c# azure asp.net-web-api

我尝试设置我的WebAPI项目,以根据Azure中部署项目的环境动态获取正确的连接字符串。我使用以下Stack Overflow帖子作为排序示例: Accessing SqlServer conn strings in Azure

在我的代码中,我试图设置此值,但它会返回null。

private static readonly string _connStr =
    Environment.GetEnvironmentVariable("SQLAZURECONNSTR_conn");

在我的web.config中,连接字符串存储如下:

<connectionStrings>
  <add name="conn" connectionString="{Connection string stuff}" />
</connectionStrings>

在Azure上的部署位置,我在应用服务的Application Settings部分设置了连接字符串。我的问题是,在本地测试时,我的连接字符串值不会在前面提到的代码行_connStr中设置。

我了解到我不需要在SQLAZURECONNSTR_中添加web.config段,而Environment.GetEnvironmentVariable()会检测到环境,然后获取正确的连接串。我开始怀疑这是不正确的。我错过了什么吗?我很感激任何帮助。

1 个答案:

答案 0 :(得分:3)

您误解了设置的工作原理。

要获得设置,您应该使用

string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;

Azure会将动态设置更改为您在此处设置的任何设置。 此外,它还设置了一个名为SQLAZURECONNSTR_conn的环境变量。但除非您进行设置,否则不会在本地环境中设置此项。设置本身不会创建它。

由于这是一个连接字符串,请务必将其设置在Web应用程序的连接字符串部分,而不是应用程序设置!