Search code examples
azure-web-app-serviceazure-webjobs

Why console app can't read App.config , if run from azure web jobs?


This is my console app: enter image description here

Program.cs:

class Program
    {
        static void Main(string[] args)
        {
            try
            {
                string test = System.Configuration.ConfigurationManager.AppSettings["BatFile"];                
                string log = @"D:\home\site\wwwroot\app_data\jobs\continuous\ConsoleApp1\log.txt";
                using (var sw = new StreamWriter(log))
                {
                    sw.WriteLine(test);
                }
            }
            catch(Exception ex)
            {
                string log = @"D:\home\site\wwwroot\app_data\jobs\continuous\ConsoleApp1\log.txt";
                using (var sw = new StreamWriter(log))
                {
                    sw.WriteLine(ex.ToString ());
                }
            }
            


        }
    }

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="BatFile" value="DB/Sample.bat"/>
    </appSettings>
</configuration>

Result can't get setting from App.config file when run azure webjobs:

enter image description here

If i run at local, it is ok. Why console app can't read App.config , if run from azure web jobs?


Solution

  • You should use (.Net Framework 4.5 +)

    string sValue = ConfigurationSettings.AppSettings["BatFile"];
    

    not

    System.Configuration.ConfigurationManager.AppSettings["BatFile"];  
    

    It works for me.

    enter image description here

    My test code.

    enter image description here