我尝试设置我的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()
会检测到环境,然后获取正确的连接串。我开始怀疑这是不正确的。我错过了什么吗?我很感激任何帮助。
答案 0 :(得分:3)
您误解了设置的工作原理。
要获得设置,您应该使用
string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
Azure会将动态设置更改为您在此处设置的任何设置。 此外,它还设置了一个名为SQLAZURECONNSTR_conn的环境变量。但除非您进行设置,否则不会在本地环境中设置此项。设置本身不会创建它。
由于这是一个连接字符串,请务必将其设置在Web应用程序的连接字符串部分,而不是应用程序设置!