C#打开网址

2020-11-18 16:10发布

我是用System.Diagnostics.Process.Start(url);打开网址,在本地启动的时候能打开,但是发布到服务器上就打不开了,有大牛知道为啥吗??

标签:
5条回答
放我归山
2楼-- · 2020-11-18 16:17

试下下面的代码,调用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;
        }
查看更多
聊天终结者
3楼-- · 2020-11-18 16:21

服务器不能访问外网?

查看更多
何必那么认真
4楼-- · 2020-11-18 16:31

如果服务器上没有浏览器话,需要安一个浏览器。
如果服务器上有浏览器,那可能是没有被设置为默认浏览器。
可以用下面的方法去调用:
1,调用ie
Process.Start("iexplore.exe", url);
2,调用指定路径下的浏览器
Process.Start(@"C:\msedge.exe", url);

查看更多
祖国的老花朵
5楼-- · 2020-11-18 16:31

服务器上是否安装有浏览器?没有错误反馈吗?

查看更多
不美不萌又怎样
6楼-- · 2020-11-18 16:34

權限不足?

查看更多
登录 后发表回答