Search code examples
c#azureazure-functionsconfigurationmanager

Azure Functions - configuration settings returns null when I try to debug locally


I have the following code:

    [FunctionName("FunctionValidateDriverRecord")]
    public static async Task Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, TraceWriter log)
    {
        string connString = ConfigurationManager.ConnectionStrings["AssetContext"].ConnectionString;
        string mail = ConfigurationManager.AppSettings["EmailForErrors"];

and local.settings.json:

{
  "IsEncrypted": false,
  "ConnectionStrings": {
    "AssetContext": "data source=server;initial catalog=3md_vistracks_sync;integrated security=True;MultipleActiveResultSets=True"
  },
  "AppSettings": {
    "EmailForErrors": "brauncomm@gmail.com"
  }
}

connString has value, but mail is null. Why?


Solution

  • In local.settings.json, you should use Values instead of AppSettings. The file schema is required for Azure function local development.

    You probably are using v1 functions, feel free to use ConfigurationManager as you have found it's valid for connectionString. v2 doesn't support ConfigurationManager and you can refer to environment variables, See this answer for more details about reading local and Azure settings.