如果 运行 来自 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"];
对我有用。
我的测试代码。
这是我的控制台应用程序:
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"];
对我有用。
我的测试代码。