Модем подключения: исключение из HRESULT: 0x80070005 (E_ACCESSDENIED) - PullRequest
0 голосов
/ 05 ноября 2018

Итак, я пытаюсь подключиться к моему модему и получаю

80070005 Ошибка доступа запрещена

... при попытке доступа.

Я не совсем уверен, в чем здесь проблема, потому что я новичок в таких добрых делах. Как я могу решить это?

namespace ConsoleApp2 
{
    class Gsmsms
    {
        private SerialPort gsmPort = null;
        private bool isDeviceFound = false;
        public Gsmsms()
        {
            gsmPort = new SerialPort();

        }

        public GSMcom[] List()
        {
            List<GSMcom> gsmcom = new List<GSMcom>();
            try
            {
                ConnectionOptions option = new ConnectionOptions();
                option.Impersonation = ImpersonationLevel.Impersonate;
                option.EnablePrivileges = true;


              //  string conn = "Server=localhost;Database=election_db2;Uid=root;Pwd=;persistsecurityinfo=True;port=3306;SslMode=none";
                 string connString = $@"\\{Environment.MachineName}\root\cimv2";
                ManagementScope scope = new ManagementScope(connString, option);
                scope.Connect();
                ObjectQuery query = new ObjectQuery("Select * from Win32_POTSModem");
                ManagementObjectSearcher search = new ManagementObjectSearcher(scope, query);
                ManagementObjectCollection collection = search.Get();




                foreach (ManagementObject obj in collection)
                {

                    string portname = obj["Name"].ToString();
                    string portDescription = obj["Description"].ToString();

                    if (portname != "")
                    {
                        GSMcom com = new GSMcom();
                        com.Name = portname;
                        com.Description = portDescription;
                        gsmcom.Add(com);
                    }

                }
            }
            catch(Exception x) {
                Console.WriteLine(x);
            }

            return gsmcom.ToArray();
        }

        public bool Search()
        {
            IEnumerator enumerator = List().GetEnumerator();
            GSMcom com = enumerator.MoveNext() ? (GSMcom)enumerator.Current : null;

            if (com == null)
            {
                 isDeviceFound = false;
                Console.WriteLine("DEVICE NOT FOUND");
            }
            else
            {
                 isDeviceFound = true;
                Console.WriteLine("HUWAIE");
            }
            return isDeviceFound;

        }
    }
}
...