如果 运行 来自 azure web 作业,为什么控制台应用程序无法读取 App.config ?

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

这是我的控制台应用程序:

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>

当 运行 azure webjobs:

时,结果无法从 App.config 文件获取设置

如果我运行在本地,就可以了。 为什么控制台应用程序无法读取 App.config ,如果 运行 来自 azure web 作业?

你应该使用 (.Net Framework 4.5 +)

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

没有

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

对我有用。

我的测试代码。