在同一解决方案中从控制台项目调用Web项目功能导致问题C#

时间:2016-04-04 07:18:38

标签: c# asp.net web console

尝试从控制台应用程序调用Web应用程序中存在的函数时,我遇到了一个问题。

我的解决方案有两个项目 我的解决方案    - Web项目    - 控制台项目

调用Web项目功能的控制台应用程序代码

namespace testConsoleApp
{
    class mainClass
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hi");

            try
            {
                outlookRoomBooking objOutlook = new outlookRoomBooking();
                objOutlook.updateStatus();
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.WriteLine("cron completed.");
            Console.ReadKey();
        }
    }
}

我正在使用的网站项目代码

namespace LVIS.includes
{
    public class outlookRoomBooking
    {

        private string user = ConfigurationManager.AppSettings["user"].ToString();
        private string passowrd = ConfigurationManager.AppSettings["passowrd"].ToString();

        //Some more codes here //
    }
}

当我运行我的控制台应用程序时,当控件进入我的Web应用程序中的类,即第一行时,我得到错误“对象引用未设置为对象的实例” private string user = ConfigurationManager.AppSettings [“user”]。ToString();

我在我的控制台项目中添加了web项目web.config的链接引用。

从控制台应用程序调用时,似乎类无法访问ConfigurationManager.AppSettings。从同一个Web项目调用时,class工作正常。

1 个答案:

答案 0 :(得分:1)

  

当我运行我的控制台应用程序时,我得到错误"对象引用不是   设置为对象的实例"当控制进入我的班级   Web应用程序,即第一行私有字符串user =   ConfigurationManager.AppSettings ["用户&#34]。的ToString();

可能是因为整个网络应用中的<appSettings>不存在于您的控制台应用的app.config中。

应用程序设置从应用程序基本目录中的应用程序配置文件(即web.configapp.config)加载。在您的情况下,控制台应用程序的基本应用程序目录是可执行文件的位置。

TL; DR版 :将应用设置从web.config复制并粘贴到您的控制台应用app.config