c# - 从 ASP.net Web 应用程序执行时如何显示命令窗口
问题描述
我的应用程序是基于 .NET Windows Forms 构建的
我现在必须将应用程序转换为 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();
}
解决方案
从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
并且您可以查看文档中的示例。
推荐阅读
- c# - IEnumerable 的性能
.Count() - 迭代值类型和引用类型之间的区别 - xaml - 为什么我的 Xamarin TableView 行的高度不同?
- wpf - WPF、VB.net、xaml 在滑块值更改时更改图像可见性
- php - PHP ZipArchive - 搜索字符串的条目内容
- ios - 如何与其他用户共享证书、标识符和配置文件部分?
- c# - 需要用绑定源设置datagridview数据源
- java - 在 JavaFX 和 Scenebuilder 中创建新的 ImageView
- c# - 在 C# 中传递未知数据类型参数
- java - java ForkJoinPool compute() 方法中的同步
- javascript - Django html模板中的Javascript代码打印