我有一个控制台应用程序位于我的桌面上。我已将其设置为预定任务,无限期地运行每20分钟。我已关闭自动睡眠/休眠。然后,我离开我的电脑并锁定我的桌面周末(2-3天)。为什么我的控制台应用程序从System32运行?
我的控制台应用程序是为了在每次捕捉到异常时向我发送电子邮件而开发的。当我返回时,检查我的收件箱是否收到了几条错误电子邮件,其中包含
访问路径'C:\ WINDOWS \ system32 \ myLogs \'被拒绝。
它似乎是我的控制台应用程序正在运行从System32
而不是从我的Desktop
。
问:为什么它表现得像它?
这是我的,如果该文件夹存在创造我myLog
文件夹路径
var logpath = Directory.GetCurrentDirectory() + Properties.Settings.Default.LogPath;
此检查,如果没有它会创建一个新的文件夹字符串。
if (!Directory.Exists(logpath))
Directory.CreateDirectory(logpath);
我相信错误是在检查/创建文件夹时触发的。 我的应用程序应该在我的控制台应用程序所在的目录中创建myLog
文件夹。
问:为什么它从System32
文件夹?
因此,最好找到我的控制台应用程序的目录,而不是调整与任务计划程序? – Hexxed
完全取决于你想要的东西。如果应用程序应该在EXE的启动目录_(1)中创建一个日志目录,则不要进行任何代码更改并调整Task Scheduler设置。如果应用程序应该在EXE_(1)的同一目录中创建一个日志目录,那么使用'System.Reflection.Assembly.GetExecutingAssembly()。Location'。您可以为两者编写代码,例如首先尝试目录(1),如果失败,则尝试目录(2)。 – Serge
谢谢,我会用场景(2)。 – Hexxed