我有一個Window服務,正在我的機器上運行。我在執行某些功能的相同解決方案中有單獨的控制檯應用程序。爲了訪問控制檯應用程序的功能,我添加了控制檯應用程序的* .exe文件作爲對Window Service項目的引用。通過窗口服務調用控制檯應用程序
public void OnTimer(object sender, System.Timers.ElapsedEventArgs args)
{
// TODO: Insert monitoring activities here.
EventLog.WriteEntry("Monitoring the System", EventLogEntryType.Information);
string[] arr = new string[] { };
ConsoleApplication.Program.Main(null);
}
如果我直接通過Visual Studio運行,控制檯應用程序完美工作。但是,如果我從窗口服務調用Main()方法,我得到一個空指針異常。
public static void Main(string[] args)
{
try
{
//CODE BREAKS HERE ON READING FROM CONFIG FILE
string genesis_sel= ConfigurationSettings.AppSettings["genesis_sel"].ToString();
}
catch (Exception ex)
{
//Exception code
}
}
下面是在Visual Studio中運行的控制檯應用程序項目的快照。
我不知道是什麼導致,而從一個窗口服務訪問的主要方法的代碼打破。
有什麼建議嗎?
更新:增加了配置文件的快照。我不相信這是來自配置文件的rad訪問問題,因爲當我單獨運行控制檯應用程序時,它正在正確讀取。當我通過窗口服務訪問它時有一個初始化問題。
UPDATE替換爲一個事件日誌的主要方法,但仍然得到同樣的異常。
貌似配置鍵,'genesis_sel'及其價值在您的Windows服務的應用程序設置中缺少。 – ashin
你可以分享你的配置文件嗎? – aaronR
@ashin不,我不這麼認爲 –