【发布时间】:2019-03-16 06:11:03
【问题描述】:
在发布此之前,我还检查了有关 Stack Overflow 的先前问题。
这是我的问题:
我在 Visual Studio 2017 上创建了一个 Windows 控制台应用程序。该应用程序应该从表中获取一些数据并定期发送电子邮件。最初,我创建了一个 Windows 服务,它工作正常,但后来我决定从任务计划程序执行它,因为更改计划很容易。
主要代码如下:
public static void Main(string[] args)
{
RetrieveData();
}
stativ void RetrieveData()
{
// Fetch data and send mails
}
有两个问题:
(1) 我无法将它附加到进程。首先的问题是,当我在调试模式下启动它时,应用程序在尝试附加到进程时一碰到 Main 就会退出。
(2) 当我点击“附加到进程”时,.exe 名称没有出现在进程名称下。
从任务调度程序执行此应用程序时如何调试它?当任务计划程序触发此作业时,它甚至没有执行。
【问题讨论】:
-
当您像普通控制台应用程序一样在 VS 中打开项目并单击
Start Debugging时,究竟会发生什么?RetrieveData做同步还是异步工作? -
为什么要在调度程序上调试它而不是使用 Visual Studio 运行控制台应用程序?
-
@AhmedAbdelhameed 没有异步调用。只是一个简单的 void 方法。
-
您可以将一些 Console.WriteLines 放在您的应用程序中,并使用“添加参数(可选)”文本框在调度程序中使用
>>运算符将输出重定向到.txt文件 -
@RKh 1) 你没有回答我的第一个问题。 2) “简单的 void 方法”可以包含异步工作没有具有
async签名。这是应用程序在执行某些代码之前终止的原因之一(您似乎在第 1 点中说过,这就是为什么我要求您确认从 Visual Studio 运行应用程序时是否会发生这种情况)。
标签: c# .net visual-studio-2017 scheduled-tasks windows-task-scheduler