UnauthorizedAccessException при попытке открыть последовательный порт в C # - PullRequest
0 голосов
/ 08 мая 2018

Я использую .NET 4.5.2. В одной из моих ViewModels мне нужно получить доступ к последовательному порту COM8, который подключен к моему устройству, датчик, который обеспечивает непрерывный поток данных. Я могу получать доступ и отправлять команды на последовательный порт через Tera Term, командную строку Windows и приложение LabView, поэтому порт не занят другим процессом - я знаю, что обычно это происходит с этими сообщениями, но я уверен, это не тот случай, здесь. Я пытался отправить команду в порт через C # с помощью класса Process (), но это не работает, поэтому, похоже, что-то с C #.

Я видел этот пост: Принудительно закрывает COM-порт , но это тоже не проблема.

Другие вещи, которые я пробовал:

  • Удаление устройства COM8 через диспетчер устройств.
  • Запуск приложения в режиме «Выпуск» через Visual Studio.
  • Запуск Visual Studio в режиме администратора.
  • Переключение на .NET 4.5.2.

И еще несколько вещей, которые я сейчас не вспоминаю. Любой совет об этой ситуации будет оценен! Я рад предоставить любую дополнительную информацию, которая может вам понадобиться.

Код для открытия порта:

if (port == null)
{
    port = new SerialPort(location, baudRate);
    port.ReadBufferSize = 16384;
}     
if (!port.IsOpen)
{
    port.Open();
}

Обновление:

Если я скопирую приведенный выше код в метод запуска, он работает нормально. Кажется, он просто не работает там, где он есть в моей ViewModel. Я думал, что это проблема с потоками, но я смог вызвать код в основном потоке, и он не работал. Надеюсь, это приблизит меня к решению!

Обновление 2:

Приведенный выше код также отлично работает в коде позади моего метода входа в систему, но не в другом коде позади. Супер запутался прямо сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...