我有一个 C# 控制台应用程序,它从app.config
. 控制台应用程序的目标是作为 Windows 调度程序任务的操作。它每天运行一次。
由于添加了从配置文件中读取的代码,因此应用程序仅在由任务计划程序运行时才会崩溃。手动运行时(从命令提示符或通过在其文件夹中单击它),应用程序运行没有问题,并且完全按预期运行。
这是从应用程序设置部分读取的代码:
int someValue = 1;
try
{
if (ConfigurationManager.AppSettings["someValue"] != null)
someValue = int.Parse(ConfigurationManager.AppSettings["someValue"].ToString());
}
catch(Exception exception)
{
// Write to error log
}
这是我在错误日志中遇到的异常:
Exception: The type initializer for '<my application name>' threw an exception.
System.Configuration.ConfigurationErrorsException: An error occurred loading a configuration file: The parameter 'exePath' is invalid.
Parameter name: exePath ---> System.ArgumentException: The parameter 'exePath' is invalid.
Parameter name: exePath
我试过让任务以最高权限运行。我尝试过以不同的方式访问配置文件(Configuration.OpenConfigurationExe(...)
)等...我每次都遇到同样的问题。我尝试将我的 .exe 放在磁盘上的不同位置。这个位于 C:\Program Files 中。我环顾四周,这篇文章表明这可能是一个读取权限问题,但如果该任务在我的域帐户下运行并且具有最高权限,那还有可能吗?请注意,如果我从命令提示符手动运行它或单击它,它运行得很好。
app.config
如果控制台应用程序已配置为在 Windows 任务计划程序下运行,我如何才能可靠地读取它?