尝试从控制台应用程序调用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工作正常。
答案 0 :(得分:1)
当我运行我的控制台应用程序时,我得到错误"对象引用不是 设置为对象的实例"当控制进入我的班级 Web应用程序,即第一行私有字符串user = ConfigurationManager.AppSettings ["用户&#34]。的ToString();
可能是因为整个网络应用中的<appSettings>
不存在于您的控制台应用的app.config
中。
应用程序设置从应用程序基本目录中的应用程序配置文件(即web.config
或app.config
)加载。在您的情况下,控制台应用程序的基本应用程序目录是可执行文件的位置。
TL; DR版 :将应用设置从web.config
复制并粘贴到您的控制台应用app.config
。