使用c#和Process.Start打开默认的浏览器窗口

时间:2020-11-09 17:54:44

标签: c# .net-core

当有人点击API端点时,我正在尝试使用默认浏览器打开网页。

我在我的本地测试机上进行此操作:

    [HttpGet("Http/{classId}")]
    public void OpenWebLink(Guid classId)
    {
        string target = "http://astrolab.meeting.trl.edu/class/details.aspx?classId=" + classId;
        System.Diagnostics.Process.Start("C:\\Program Files\\Mozilla Firefox\\firefox.exe", target);
    }

但是当我发布到具有IIS的服务器时,找不到firefox.exe

问题是,我不得不为使用Firefox投入完整的途径,以使其在我的机器上正常工作。如果不包含这样的路径,则会出现此错误:

System.Diagnostics.Process.Start Win32Exception: 'The system cannot find the file specified.'

我也尝试过:

    [HttpGet("Http")]
    public void OpenWebLink(Guid classId)
    {
        try
        {

            var ps = new ProcessStartInfo("http://astrolab.meeting.trl.edu/class/details.aspx?classId=" + classId;)
            {
                Verb = "open"
            };
        Process.Start(ps);
        }
        catch (Win32Exception w32Ex) 
        {
            throw w32Ex;
        }
    }

但是当我用以下命令在IIS服务器上命中端点时,它仍然失败:

System.ComponentModel.Win32Exception (2): The system cannot find the file specified.

是否可以进行设置,以便在任何计算机上找到默认浏览器?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用101 (更正确的方式)启动您的网址,或通过ShellExecute(更懒惰,较不便的方式)将其通过管道发送。

explorer