【问题标题】:How to display Command window when executed from ASP.net web application从 ASP.net Web 应用程序执行时如何显示命令窗口
【发布时间】:2020-07-08 05:22:38
【问题描述】:

我的应用程序是基于 .NET Windows 窗体构建的

我现在必须将应用程序转换为 Web 应用程序。

许多功能都没有任何变化

我曾经有一个执行命令并打开命令提示符窗口的功能。

我将代码放在 ASP.net Web 应用程序中,代码很好,命令可以执行,但问题是命令提示符窗口不再显示。

代码没有改变。

我想知道如何让命令提示符窗口出现在服务器端,以便管理员知道是否有命令错误或任何其他问题?

这是我用来执行命令的函数

   static void ExecuteCommand(string command, string workingFolder)
    {
        var processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
        processInfo.UseShellExecute = false;
        processInfo.WorkingDirectory = workingFolder;
        var process = Process.Start(processInfo);
        process.WaitForExit();
    }

【问题讨论】:

  • 你知道,你的命令是在服务器上执行的,对吧?
  • @vasily.sib 是的,我在我的问题中提到我希望命令窗口显示在服务器端。
  • 除了这是一个糟糕的想法之外,您只是无法从 IIS 托管的 Web 应用程序中显示一个窗口。不过,您可以通过Process.StandardError 试试运气

标签: c# asp.net process


【解决方案1】:

documentation 中,您可以使用"/K" flag 继续打开命令窗口

如果 fileName 参数代表一个命令 (.cmd) 文件,则 arguments 参数必须包含“/c”或“/k”参数 指定命令窗口在完成后是退出还是保留。

var processInfo = new ProcessStartInfo("cmd.exe", "/k " + command);            
processInfo.WorkingDirectory = workingFolder; 
var process = Process.Start(processInfo);         
process.WaitForExit();

但为了获得错误并将其显示给您的管理员,您必须使用StandardError,您可以在文档中查看示例。

【讨论】:

    猜你喜欢
    • 2011-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2011-03-24
    • 1970-01-01
    相关资源
    最近更新 更多