【发布时间】:2019-06-14 05:51:09
【问题描述】:
我有 C# 应用程序作为调度程序。它成功运行各种应用程序。其中一个应用程序 (VB6) 在作业中途失败。如果我直接使用完全相同的参数执行这个 VB6 应用程序,它就会成功完成。调度程序成功运行其他 VB6 应用程序。有人知道是什么原因造成的吗?当您从另一个应用程序 (C#) 中启动一个应用程序 (VB6 exe) 时,环境会发生什么变化?也许有专家可以指点我帮助解决这个问题?
我正在向 VB6 应用程序添加更多日志记录,当前错误指向执行 SQL 命令的例程,但我有其他应用程序执行相同的代码没有问题。在这个阶段,我被难住了。
【问题讨论】:
-
嘿 5ilverFox,你能分享一些代码给我们吗?会很棒:)
-
公平地说,您的应用程序不是 C#。 C# 是源语言,但它被编译为 IL 字节码,该字节码在运行时被编译为本机代码 - 运行与任何其他进程相同的可执行代码。这里的任何问题要么归结为用户上下文(也许该应用程序在计划任务的用户上下文下无法正常工作)或环境变量(大多数情况下第一个问题的变体)。考虑不同运行案例之间的环境有何不同。
-
肯定会成为用户上下文。尝试使用 sysinternals 中的 procmon 监控“c#”进程的用户 ID,以查看用户上下文。
-
尝试editing 发布代码