已从Web.Config而不是App.Config加载连接字符串

时间:2014-12-27 17:09:18

标签: c# web-config app-config web-application-project

我在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);

1 个答案:

答案 0 :(得分:0)

可以在控制台应用程序中使用web.config,反之亦然:

AppDomain.CurrentDomain.SetData(&#34; APPBASE&#34;,configDir); AppDomain.CurrentDomain.SetData(&#34; APP_CONFIG_FILE&#34;,configPath);