【问题标题】:Calling web project function from console project in same solution causing issue C#在同一解决方案中从控制台项目调用 Web 项目功能导致问题 C#
【发布时间】:2016-04-04 07:18:38
【问题描述】:

我在尝试从控制台应用程序调用 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();
        }
    }
}

我正在使用的 Web 项目的代码

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 应用程序中的类(即第一行)时,出现错误“对象引用未设置为对象的实例” 私有字符串用户 = ConfigurationManager.AppSettings["user"].ToString();

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

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

【问题讨论】:

    标签: c# asp.net web console


    【解决方案1】:

    当我运行我的控制台应用程序时,我收到错误“对象引用不 设置为对象的实例”当控件进入我的类时 Web 应用程序,即第一行私有字符串 user = ConfigurationManager.AppSettings["user"].ToString();

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

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

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

    【讨论】:

    • 感谢@Matias,它以这种方式工作,但我在我的 Web 项目中存在的 web.config 控制台应用程序中使用了“添加链接”,以避免在两个地方维护 .config 文件,但确实如此不工作。
    • @Chandikumar 我明白了,我很高兴你解决了这个问题;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多