我有一个控制台应用程序可以手动运行,但是当它由 SQL Server 代理执行时,它根本无法运行,并且还会吐出一条奇怪的错误消息,如下所示:-
Executed as user: I01SVTD21\SYSTEM.
Unhandled Exception: System.IO.IOException: The handle is invalid.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.Console.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded)
at System.Console.Clear()
at ActiveDirectoryImport.Program.SendReports()
at ActiveDirectoryImport.Program.GetUserInfo()
at ActiveDirectoryImport.Program.Main(String[] args).
Process Exit Code 255. The step failed.
现在这可能看起来不像一个奇怪的错误消息,直到您意识到 ActiveDirectoryImport.Program.SendReports() 是 ActiveDirectoryImport.Program.GetUserInfo() 调用的最后一个方法,所以看起来大部分代码已经运行。然而,情况并非如此,因为代码所做的第一件事就是更新数据库表中的记录,这并没有发生......
所以我有两个问题。当手动从同一位置正常运行时,为什么作业完全失败?而且,为什么它告诉我它在代码中很晚才失败,而它显然还没有那么远?
控制台应用程序确实写入控制台屏幕,但不接受用户输入。它基本上将应用程序的状态写入屏幕,这似乎是错误的......
任何帮助表示赞赏。