Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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# 如何在本地获取Azure应用程序设置?_C#_Asp.net_Azure - Fatal编程技术网

C# 如何在本地获取Azure应用程序设置?

C# 如何在本地获取Azure应用程序设置?,c#,asp.net,azure,C#,Asp.net,Azure,我正在尝试将SendGrid与托管在Azure上的应用程序集成 其中一条说明是将API密钥作为应用程序设置存储在Azure中,我已经完成了这项工作 我正在尝试本地测试,当我尝试获取该设置时,它返回为null: var apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY"); 我想它可能需要放在我的web.config中,所以我在那里添加了它,它仍然返回为null 有没有办法在本地获取这些设置?或者我是否需要以某

我正在尝试将SendGrid与托管在Azure上的应用程序集成

其中一条说明是将API密钥作为应用程序设置存储在Azure中,我已经完成了这项工作

我正在尝试本地测试,当我尝试获取该设置时,它返回为
null

var apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY");
我想它可能需要放在我的web.config中,所以我在那里添加了它,它仍然返回为
null


有没有办法在本地获取这些设置?或者我是否需要以某种方式确定我正在本地运行,并使用不同的方法而不是
GetEnvironmentVariable()

是的,您希望将SendGrid API密钥放置在web.config文件的节中。它将沿着以下几条线进行观察:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    ... other web.config settings ....
    <appSettings>
        <add key="SendGridAPIKey" value="[Your key goes here]" />
    </appSettings>
</configuration>

这将在本地和Azure Web应用程序中起作用

谢谢Rob-但当我将更改部署到Azure中托管的站点时,我希望从Azure的应用程序设置中获取API密钥,而不是从web.config(以防我希望它在本地与Azure环境中不同)。我该怎么做呢?嗨,史蒂文,上面的代码实际上会检索Azure Web App应用程序设置中的内容。Azure Web App应用程序设置优先,并覆盖部署的Web.config文件中指定的内容。因此,如果我在web.config中有一个名为“foo”的SendGridAPIKey应用程序设置,在名为SendGridAPIKey的web应用程序中有一个值为“bar”的应用程序设置,那么上面的代码将向我的应用程序返回“bar”,因为web应用程序设置优先。实际上,我更喜欢在Web应用程序设置中指定生产设置,而不是依赖Web.config转换
string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGridAPIKey"];