[英]Get Response from Console Application (command prompt in windows)
我有Web UI,Client_Console,Loader_Console。
请考虑以下两种情况
方案1:Client_Console将调用WebService(REST),通过该操作,只有我传递输入,它将调用其他控制台应用程序(loader_console),这工作正常,并且我能够从loader_console获取响应并成功显示在Client_console中。
方案2:从Web UI,我需要将输入传递给Client_console,后者将调用Webservice,并将输入传递给Loader_console。
现在我的问题是,所有操作完成后,我无法从Client_Console获得响应。
下面我包括我的代码的一部分
Process InvokeTool = new Process();
InvokeTool.StartInfo.FileName = toolToInvoke;
InvokeTool.StartInfo.RedirectStandardInput = true;
InvokeTool.StartInfo.CreateNoWindow = true;
InvokeTool.StartInfo.RedirectStandardOutput = true;
InvokeTool.StartInfo.UseShellExecute = false;
try
{
InvokeTool.Start();
}
catch (Exception ex)
{
var exceptn = ex.ToString();
lbl_Response.Text = "ERROR : Could not find the tool specified in the client json config file";
return;
}
StreamWriter writer = InvokeTool.StandardInput;
writer.WriteLine(sourcefolderURL);
writer.WriteLine(jsonFileLocation);
writer.WriteLine(fieldSeperator);
writer.WriteLine("NO");
StreamReader reader = InvokeTool.StandardOutput;
//InvokeTool.Kill();
//InvokeTool.CloseMainWindow();
var result = reader.ReadToEnd();
string[] responseArray = result.Split(':');
请帮我解决这个问题
您是否正在从Web应用程序调用控制台客户端? 这意味着控制台应用程序是在非交互式环境(Windows服务会话)中启动的,因此您看不到控制台应用程序正在运行。
如果您需要控制台应用程序,则应考虑在打开的会话上运行并监听端口的控制台应用程序,Web应用程序应使用该端口建立与控制台客户端的通信,并且控制台客户端应通过使用该端口接收指令来与Web应用程序进行交互。
您应该建立一个沟通渠道。 有很多方法可以实现它。 尝试以下方法之一:
将响应发送到注册表项。 (然后阅读注册表Web应用程序): 注册表类
将响应发送到文本文件,Web应用程序必须打开该文件才能对其进行审阅: 如何:写入文本文件(C#编程指南)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.