我是用System.Diagnostics.Process.Start(url);打开网址,在本地启动的时候能打开,但是发布到服务器上就打不开了,有大牛知道为啥吗??
如果服务器上没有浏览器话,需要安一个浏览器。
如果服务器上有浏览器,那可能是没有被设置为默认浏览器。
可以用下面的方法去调用:
1,调用ie
Process.Start("iexplore.exe", url);
2,调用指定路径下的浏览器
Process.Start(@"C:\msedge.exe", url);
用这个也不行,感谢建议
權限不足?
服务器上是否安装有浏览器?没有错误反馈吗?
服务器不能访问外网?
试下下面的代码,调用OpenUrl方法
public static void OpenUrl(string url)
{
string browser = GetSystemDefaultBrowser();
if(!string.IsNullOrEmpty(browser))
{
Process.Start(browser, url);
}
else
{
Process.Start(url);
}
}
public static string GetSystemDefaultBrowser()
{
string name = string.Empty;
RegistryKey regKey = null;
try
{
var regDefault = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.htm\\UserChoice", false);
var stringDefault = regDefault.GetValue("ProgId");
regKey = Registry.ClassesRoot.OpenSubKey(stringDefault + "\\shell\\open\\command", false);
name = regKey.GetValue(null).ToString().ToLower().Replace("" + (char)34, "");
if (!name.EndsWith("exe"))
{
name = name.Substring(0, name.LastIndexOf(".exe") + 4);
}
}
catch (Exception ex)
{
}
finally
{
if (regKey != null)
{
regKey.Close();
}
}
return name;
}