Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调试localhost时使用Environment.GetEnvironmentVariable()访问Azure中的连接字符串_C#_Azure_Asp.net Web Api - Fatal编程技术网

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

C# 调试localhost时使用Environment.GetEnvironmentVariable()访问Azure中的连接字符串,c#,azure,asp.net-web-api,C#,Azure,Asp.net Web Api,我正在尝试设置我的WebAPI项目,以便根据项目在Azure中部署到的环境动态获取正确的连接字符串。我使用以下堆栈溢出帖子作为排序示例: 在我的代码中,我试图设置这个值,但它返回空值 private static readonly string _connStr = Environment.GetEnvironmentVariable("SQLAZURECONNSTR_conn"); 在my web.config中,连接字符串存储如下: <connectionStrings&g

我正在尝试设置我的WebAPI项目,以便根据项目在Azure中部署到的环境动态获取正确的连接字符串。我使用以下堆栈溢出帖子作为排序示例:

在我的代码中,我试图设置这个值,但它返回空值

private static readonly string _connStr =
    Environment.GetEnvironmentVariable("SQLAZURECONNSTR_conn");
在my web.config中,连接字符串存储如下:

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

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


我明白了我不需要在我的
web.config
中添加
SQLAZURECONNSTR\uu
段,并且
Environment.GetEnvironmentVariable()
将检测环境,然后获取正确的连接字符串。但我开始怀疑这是不正确的。我错过什么了吗?非常感谢您的帮助。

您误解了设置的工作原理

要获得设置,应使用

string connStr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
Azure将动态地将设置更改为您在那里设置的任何设置。此外,它还设置了一个名为SQLAZURECONNSTR_conn的环境变量。但是,除非您进行了设置,否则不会在本地环境中设置该变量。设置本身不会创建它

由于这是一个连接字符串,请确保在Web应用程序的连接字符串部分设置它,而不是在应用程序设置部分