我在cron.exe中有控制台应用程序,它引用了Web应用程序。 Cron项目有自己的App.Config和连接字符串。 Cron Project参考Web应用程序,其web.config具有不同的连接字符串。
当我运行cron.exe时,它会从Web应用程序的web.config中加载连接字符串,而不是从它自己的app.config加载?
如何强制控制台应用程序使用项目中包含的app.config?
string key = "SqlServices";
var connStr = ConfigurationManager.ConnectionStrings[key];
if (connStr == null)
{
List<string> conns = new List<string>();
for (int i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++)
{
var connI = ConfigurationManager.ConnectionStrings[i];
conns.Add(connI.Name + ": " + connI.ConnectionString);
}
throw new ConfigurationErrorsException(string.Format("Missing connection string {0}. Founded these connection strings: {1} ", key, string.Join(";", conns.ToArray())));
}
return connStr.ConnectionString;
}
}
解:
项目合并配置行中几行:
AppDomain.CurrentDomain.SetData("APPBASE", configDir);
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configPath);
答案 0 :(得分:0)
可以在控制台应用程序中使用web.config,反之亦然:
AppDomain.CurrentDomain.SetData(&#34; APPBASE&#34;,configDir); AppDomain.CurrentDomain.SetData(&#34; APP_CONFIG_FILE&#34;,configPath);