我写了一些C#应用程序,并通过Windows任务计划程序运行它们。它们正在成功运行(从它们编写的日志文件可以看到),但Windows任务计划程序显示它们返回了最后运行结果0xE0434352
。我需要在我的C#应用程序中做些什么,以便它向Windows任务计划程序返回成功代码?
我写了一些C#应用程序,并通过Windows任务计划程序运行它们。它们正在成功运行(从它们编写的日志文件可以看到),但Windows任务计划程序显示它们返回了最后运行结果0xE0434352
。我需要在我的C#应用程序中做些什么,以便它向Windows任务计划程序返回成功代码?
.NET Runtime
下。 - riQQHans Passant是正确的,我添加了一个处理程序来处理AppDomain.CurrentDomain.UnhandledException,就像这里描述的一样http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception(v=vs.71).aspx。我能够找到发生的异常并进行了修正。
我正在引用一个映射驱动器,发现映射的驱动器不一定对运行计划任务的用户账户可用,所以我使用了\\IP地址
代替映射驱动器字母:
,现在我的程序已经可以运行。
我曾经遇到了同样的错误,但是我通过将文件读取路径从"ConfigFile.xml"更改为AppDomain.CurrentDomain.BaseDirectory.ToString() + "ConfigFile.xml"来解决了它。
在我的情况下,这个错误是由于文件路径错误造成的,因为任务管理器从"System32"作为初始路径启动程序,而不是我们想象中的那个文件夹。
我曾遇到这个问题,原因是由于.Net框架版本。我将构建升级到了4.0框架,但这似乎影响了应用程序使用的一些通信dll。我回滚到了3.5框架,然后它就正常工作了。
Microsoft.NET.Sdk.Web
更改为Microsoft.NET.Sdk.Razor
(在projects.csproj
文件中看到)。我将其改回去后问题就解决了 :)还有PowerShell中的消息框。我将PowerShell脚本转换为exe文件。以管理员身份运行时可以正常工作,但在任务计划中也出现了错误。 PowerShell脚本中有一行带有write-output的代码。注释掉这行并编译新的exe文件后,任务计划成功完成。
在处理COM对象时,我遇到了这个问题。在某些情况下(我的错),我破坏了一个外部的.EXE进程,在一个并行线程中,一个变量试图访问com接口app.method,导致了COM级别的崩溃。任务计划程序注意到了这一点,并关闭了应用程序。但是,如果您在控制台中运行应用程序并且不处理异常,则应用程序将继续工作...
请注意,如果您使用非托管代码或外部对象(AD、Socket、COM...),则需要对它们进行监视!