所以我创建了一个Azure Web作业,它每15分钟执行一次特定的任务。它运行一个C#控制台应用程序。问题是,在我最后一次上传我的程序时,我把我的Console.ReadLine();参数放在里面,导致程序永远不会完成(当然是用于本地调试),并且网络作业失败了,再也不能运行了。如果我有源代码,这显然可以很快解决,但源代码在我的办公室,我忘记上传到我的云存储。我要到本周晚些时候才能拿到它。
所以我想找个快速解决办法。我可以下载最后一次上传的.exe程序。所以现在我想的是先运行另一个程序,调用我的主程序,然后在一段时间后关闭它。我尝试了一个简单的.bat脚本,它能够成功地打开程序,但是由于访问被拒绝的错误(在本地工作),它无法关闭/终止进程。还有其他在网络工作环境中有效的快速建议吗?
显然,如果您在几天内看到这一点,我可能已经更正了问题根源所在的源代码,但其他人也可能感兴趣。:)
更新:
谢谢大家!这些解决方案中的每一个都帮助我使我的网络工作按预期运行。使用Reflector进行反编译特别有用,这样我就可以像它假设的那样将这个项目添加到云中。然而,使用@evilSnobu建议的run.cmd是应用我问题中所要求的解决方法的最简单和最简单的方法。
再次谢谢!)
我从Console.ReadLine();转到System.Threading.Thread.Sleep();,以防止将来发生任何事故。
发布于 2016-09-12 19:34:16
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World!");
Console.ReadLine();
Console.WriteLine("After ReadLine");
}
}尝试以echo '\n' | helloconsole.exe的形式运行您的网络作业
在库都的测试:
D:\home\tmp>echo '\n' | helloconsole.exe
Hello World!
After ReadLine
D:\home\tmp>echo '\n' | helloconsole.exe
Hello World!
After ReadLine..seems把它弄下来。
如果在run.cmd中删除它,它将优先于您的.exe二进制文件。https://github.com/projectkudu/kudu/wiki/Web-jobs
我们使用以下逻辑来确定哪个文件是要在作业目录中运行的脚本:
run.{file type extension}的文件(例如,run.cmd或run.exe)。发布于 2016-09-12 19:27:43
https://stackoverflow.com/questions/39456893
复制相似问题