Azure Web作业失败-ReadLine()留在中

本文关键字:-ReadLine Web 作业 失败 Azure | 更新日期: 2023-09-27 18:06:53

所以我创建了一个Azure Web作业,每15分钟执行一次特定任务。它运行一个C#控制台应用程序。问题是,在我最后一次上传程序时,我留下了Console.ReadLine();参数,导致程序永远无法完成(当然用于本地调试(,web作业失败,再也无法运行。如果我有源代码,这显然可以很快修复,但源代码在我的办公室,我忘了上传到我的云存储。我要到本周晚些时候才能拿到它。

所以我正在寻找一个快速解决方案。我可以轻松下载上次上传的.exe程序。所以现在我想的是先运行另一个程序,调用我的主程序,然后在一段时间后关闭它。我尝试了一个简单的.bat脚本,它能够成功地打开程序,但由于访问被拒绝的错误(在本地工作(,它无法关闭/终止进程。还有其他在网络工作环境中有效的快速建议吗?

显然,如果你几天后在这里看到这一点,我可能已经对问题根源的源代码进行了更正,但其他人可能也感兴趣。:(

更新:

谢谢大家!这些解决方案中的每一个都帮助我按预期运行web作业。使用Reflector进行的反编译特别有用,这样我就可以像预期的那样将这个项目添加到云中。然而,按照@evichSnobu的建议使用run.cmd是应用我问题中要求的解决方法的最简单方法。

再次感谢!:(

p.S.I从Console.ReadLine()切换;至System.Threading.Thread.Sleep();,以防止未来发生任何事故。

Azure Web作业失败-ReadLine()留在中

public class Program
    {
        public static void Main()
        {
            Console.WriteLine("Hello World!");
            Console.ReadLine();
            Console.WriteLine("After ReadLine");
        }
    }

尝试以echo ''n' | helloconsole.exe 运行您的Webjob

库都测试:

D:'home'tmp>echo ''n' | helloconsole.exe
Hello World!
After ReadLine
D:'home'tmp>echo ''n' | helloconsole.exe
Hello World!
After ReadLine

似乎成功了。

如果你把它放在run.cmd中,它将优先于你的.exe二进制文件。https://github.com/projectkudu/kudu/wiki/Web-jobs

我们使用以下逻辑来决定哪个文件是要在作业目录中运行的脚本:

  • 根据文件类型,我们首先查找名为:run.{file type extension}的文件(例如run.cmd或run.exe(

尝试以下命令来终止进程:

d:'devtools'sysinternals'pskill /accepteula YourProcessName

您可以先在Kudu控制台中练习运行此程序。