WPF C# - 标准(非特权)用户无法识别webclient?

时间:2017-04-15 13:33:12

标签: c# wpf webclient web-client

以下是我用来检查互联网连接的代码。但它总是失败。这对我的管理员用户运行良好,但不适用于我制作的标准(非特权)用户。这里可能缺少什么..

if (!App.IsInternetConnected)
            {
                await Task.Factory.StartNew(() =>
                {
                    App.IsInternetConnected = Utils.IsInternetConnected();
                });
            }

            if (!App.IsInternetConnected)
            {
                App.ShowMessage("FeatureNotAvailable");
                LoginProgress.Visibility = System.Windows.Visibility.Hidden;
                return;
            }


 IsInternetConnected method is as below.

internal static bool IsInternetConnected()
    {
       try
        {
            WebClient webclient = new  WebClientPool().GetIdleWebClientObject();

            try
            {
            webclient.DownloadString("http://www.google.com");
            return true;
        }

    }
    catch (Exception)
    {
            return false;
    }
  }

GetIdleWebClientObject如下所示。

 [MethodImpl(MethodImplOptions.Synchronized)]
        public WebClient GetIdleWebClientObject()
        {
            foreach (WebClient item in WebClientItems)
            {
                if (!item.IsBusy )
                {
                    Log.Instance.WriteLine("reused webclient");
                    item.Headers.Clear();
                    return item;
                }
            }
            Log.Instance.WriteLine("new webclient");
            WebClient NewItem = new WebClient();
            NewItem.UseDefaultCredentials = true;
            //NewItem.Credentials = CredentialCache.DefaultNetworkCredentials;

            NewItem.Proxy = WebRequest.GetSystemWebProxy();
            WebClientItems.Add(NewItem);
            return NewItem;
        }

1 个答案:

答案 0 :(得分:1)

我的问题有点不合适但可能对任何人都有帮助。 它符合\vspace{-2cm}这一行在\vspace{2p}驱动器中创建和编写日志文件。这是不允许标准用户和抛出异常。 这导致我没有显示实际上没有相关的互联网错误。