当有人点击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.
是否可以进行设置,以便在任何计算机上找到默认浏览器?
谢谢!
答案 0 :(得分:1)
使用101
(更正确的方式)启动您的网址,或通过ShellExecute
(更懒惰,较不便的方式)将其通过管道发送。
explorer