Доступ к 'COM' запрещен на SerialPort - PullRequest
0 голосов
/ 02 июля 2019

Я делаю dll в c # для подключения EDC к ПК и показываю его в Internet Explorer с USB-портом. С первой попытки, код успешно подключается к EDC, EDC выдает значение, преобразует его вxml и показывать xml в Internet Explorer, когда я пытаюсь это сделать снова, Internet Explorer выдает исключение «Доступ к COM запрещен», когда я закрываю Internet Explorer, код снова запускается, а когда я пытаюсь снова, онвыбрасывает то же значение.

как это исправить?Пожалуйста, помогите, я действительно новичок в этих SerialPort

Я искал в интернете, что они предлагают закрыть порт после его открытия, я пробовал это, но он все еще выдает исключение.

C # Код для отправки и получения

 public string CobaAja(string a)
{    
    SerialPort port;
    port = new SerialPort(com, p);
    port.Parity = Parity.None;
    port.BaudRate = 9600; //115200
    port.DataBits = 8;
    port.StopBits = StopBits.One;
    port.Handshake = Handshake.None;
    port.RtsEnable = true;

    //sending
    port.Open();
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(a);
    port.Write(messageSent, 0, messageSent.Length);

    //receive
     string data;
     string xmlBuild;
     byte[] buffer = new byte[port.ReadBufferSize];
     int bytesToRead = port.Read(buffer, 0, buffer.Length);
     while ((bytesToRead = port.Read(buffer, 0, buffer.Length)) > 0)
     {
          data = Encoding.ASCII.GetString(buffer, 0, bytesToRead);
           //these are the codes for creating XML 
           //After creating XML, i try to return the xml value 
           xmlBuild = sb.ToString();
           return xmlBuild;
      }
          port.close();
          return a;
    }

javascript код для вызова dll и отображения результатов на консоли

var objPP = new ActiveXObject("Nyoba.Dulu");
 var coba = objPP.CobaAja(xml);
 console.log(coba);
...