C# 为什么执行exe的控制操作系统作业在执行过程中卡住?

C# 为什么执行exe的控制操作系统作业在执行过程中卡住?,c#,windows,control-m,C#,Windows,Control M,我有一个c#exe,它使用sed从远程unix服务器读取一些日志行。当我在我的windows服务器甚至是我的dev pc上多次运行这个exe时,它执行得很好。然而,当我最终尝试将其作为Control M中的循环OS作业运行时(有时在第一次执行时,似乎是随机发生的),它会被卡住,但不会抛出异常或任何东西 作业的命令运行.bat文件,循环时间配置为0分钟,暂停时间由带thread.sleep的exe动态控制 在搜索web并从使用control M的工作场所的其他区域寻求建议后,到目前为止,我已尝试将

我有一个c#exe,它使用sed从远程unix服务器读取一些日志行。当我在我的windows服务器甚至是我的dev pc上多次运行这个exe时,它执行得很好。然而,当我最终尝试将其作为Control M中的循环OS作业运行时(有时在第一次执行时,似乎是随机发生的),它会被卡住,但不会抛出异常或任何东西

作业的命令运行.bat文件,循环时间配置为0分钟,暂停时间由带thread.sleep的exe动态控制

在搜索web并从使用control M的工作场所的其他区域寻求建议后,到目前为止,我已尝试将我的代理更改为使用ctmwincfg的本地用户,我还尝试将代理服务更改为同一用户(由于代理停止正常工作,我不得不撤销此服务),我也从直接在作业上执行exe改为使用.bat文件


我的一个主机组代理是windows server 2016,还有3个是windows server 2012。我无法在control M本身中找到解决方案,而是在.exe的代码中找到解决方案。我使用了一个任务,它允许程序在超时后终止卡住的方法,这反过来又允许controlm作业正常完成

  var task = Task.Run(() => MyStuckMethod(arg));
        if (task.Wait(TimeSpan.FromSeconds(30)))
            return task.Result;
        else
            throw new Exception("Timed out");
或者,control M中有一些变通方法,包括发送警报或创建喊叫,然后自动终止作业,但这对我的案例没有用处。

有人遇到过这个问题吗?