C# 如何在本地获取Azure应用程序设置?
我正在尝试将SendGrid与托管在Azure上的应用程序集成 其中一条说明是将API密钥作为应用程序设置存储在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 有没有办法在本地获取这些设置?或者我是否需要以某
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"];