从后面的代码启动命令行 exe (ngrok) 的正确方法

Posted

技术标签:

【中文标题】从后面的代码启动命令行 exe (ngrok) 的正确方法【英文标题】:Correct way to start a command line exe (ngrok) from code behind 【发布时间】:2020-03-17 13:21:09 【问题描述】:

我正在尝试从 WPF C# 应用程序 sart ngrok。

想要的结果是打开 Windows 命令行并启动 ngrok,就像我手动启动它一样。

我得到一个异常:System.InvalidOperationException

private async void StartNgrok()
    
        string ExePath = "C:\\Users\\mmcca\\ngrok.exe";
        string Args = "\"http 55678 -host-header=\"localhost: 55678\"";

        try
        
            var proc = Process.Start(ExePath, Args);
        
        catch (Exception ex)
        
            // Throwing - System.InvalidOperationexception
        

从后面的代码启动命令行 exe 的正确方法是什么?

【问题讨论】:

【参考方案1】:

您可以尝试将 ngrok 声明为进程,然后以这种方式启动它 - 这在过去对我有用:

Process ngrok = new Process();
ngrok.StartInfo.FileName   = "C:\\Users\\mmcca\\ngrok.exe";
ngrok.StartInfo.Arguments = "\"http 55678 -host-header=\"localhost: 55678\"";
ngrok.Start();

让我知道你的进展如何。

【讨论】:

以上是关于从后面的代码启动命令行 exe (ngrok) 的正确方法的主要内容,如果未能解决你的问题,请参考以下文章

ngrok 从 Windows 7 命令行杀死隧道

如何修复 ngrok 转发端口?

跪求!无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe)...

身份验证在 ngrok 上的 PuTTY 命令行中不起作用

无法从命令行或调试器启动服务,必须首先安装Windows服务(使用installutil.exe),然后用ServerExplorerWindows服务器管理工具或NET START命令启动它(示例

如何使用命令行中rar.exe分卷压缩?