C# 已从Web.Config而不是App.Config加载连接字符串
我在cron.exe中有一个控制台应用程序,它引用了web应用程序。Cron项目有自己的带有连接字符串的App.Config。Cron项目引用web应用程序,该应用程序的web.config具有不同的连接字符串 当我运行cron.exe时,它从web应用程序的web.config加载连接字符串,而不是从它自己的app.config加载 如何强制console应用程序使用项目中包含的app.configC# 已从Web.Config而不是App.Config加载连接字符串,c#,web-config,app-config,web-application-project,C#,Web Config,App Config,Web Application Project,我在cron.exe中有一个控制台应用程序,它引用了web应用程序。Cron项目有自己的带有连接字符串的App.Config。Cron项目引用web应用程序,该应用程序的web.config具有不同的连接字符串 当我运行cron.exe时,它从web应用程序的web.config加载连接字符串,而不是从它自己的app.config加载 如何强制console应用程序使用项目中包含的app.config string key = "SqlServices"; var connStr
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;
}
}
可以在控制台应用程序中使用web.config,反之亦然: AppDomain.CurrentDomain.SetData(“APPBASE”,configDir);
AppDomain.CurrentDomain.SetData(“应用程序配置文件”,配置路径) 您能告诉我们您是如何读取连接字符串的吗?ConfigurationManager.AppSettings[“NodeNameInAppConfig”]请检查此项,听起来它是与连接的。我只有一个在控制台应用程序和web应用程序之间共享的共享代码,我不能/不想为web和控制台编写单独的代码。它可能是您提到的设置应用程序默认配置中的某个内容。此外,ConfigurationManager.AppSettings不用于保存连接字符串。抱歉,伙计们,你们不知道项目中有特殊的内容。这对我来说也是一个惊喜。
AppDomain.CurrentDomain.SetData("APPBASE", configDir);
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configPath);