Unkumentierte Ausnahme bei der Verwendung von COM -Port -Umleitung über RDP

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Unkumentierte Ausnahme bei der Verwendung von COM -Port -Umleitung über RDP

by Anonymous » 13 Feb 2025, 03:16

Ich wurde gebeten, an einem kleinen Werkzeug zu arbeiten, das einer meiner Vorgänger vor langer Zeit in .NET 3.5 erstellt hat (wenn es wichtig ist, verwendet das Tool WinForms). Das Hauptmerkmal dieses Tools besteht darin, Maschinen durch Kommunikation durch einen seriellen Anschluss neu zu programmieren. Als solches wird der Computer durch ein COM/USB -Kabel mit dem Computer verbunden, und der Computer verwendet einen Treiber, um einen COM -Anschluss zu emulieren, auf dem das Tool lesen/schreiben kann.
Weil die Das Tool muss auf sichere Ressourcen zugreifen, es wird über Remote -Desktop auf einem entfernten Server ausgeführt. Wir verwenden die Funktion "serieller Port -Umleitung Kürze: Die Maschine zur Neuprogrammierung wird über ein COM-to-USB-Kabel auf meinem lokalen Computer verbunden. Mit einem Treiber auf meinem lokalen Computer kann der USB als emulierter COM -Port verwendet werden. Dieser emulierte COM -Port wird über RDP an den Server weitergeleitet, aus dem das Tool ausgeführt wird. Das Tool liest und schreibt dann auf dem COM -Port. < /P>
Das Problem, das ich lösen möchte . Der Code für den relevanten Teil sieht ungefähr so ​​aus: < /p>

Code: Select all

serialPort = new SerialPort();
serialPort.PortName = "COM1";
serialPort.BaudRate = 115200;
serialPort.Parity = Parity.None;
serialPort.DataBits = 8;
serialPort.StopBits = StopBits.One;
serialPort.Handshake = Handshake.None;
serialPort.NewLine = "\r";

serialPort.Open();

serialPort.ReadTimeout = 2000;
do
{
try
{
sMessage = serialPort.ReadLine();
AddLog(sMessage);
}
catch (TimeoutException) {}
} while (!sMessage.Contains("Starting Reprogramming Process"));
< /code>
Dies scheint auf dem alten Windows Server 2012 einwandfrei zu funktionieren. Wenn das Tool jedoch auf dem neuen Windows Server 2019 ausgeführt wird, das das alte, ein System.io ersetzen soll, ersetzen soll .IOException wird sofort aus der Methode serialport.readline () 
geworfen. p>

Ich habe versucht, das Tool direkt auf meinem lokalen Computer auszuführen, und es liest aus dem COM -Port einwandfrei. Ich habe Putty auch direkt auf den Port anhören und erhalte die Nachrichten des Geräts sowohl auf dem lokalen Computer als auch auf dem Server über RDP. (Baudrate, Parität ...) Und sie sind alle gut. < /p>
Der Teil, der für mich am verwirrendsten ist, ist, dass diese IOException nicht dokumentiert zu sein scheint. Entweder das oder ich arbeite mit der falschen Dokumentation? Das nächstgelegene Problem, das ich gefunden habe, ist das, was beim Serverfehler über vorbei ist, aber die Tatsache, dass ich den COM -Port über Putty lesen kann, scheint mehr auf ein Problem mit meinem Code oder mit dem Serialport -Modul zu zeigen. /> Ich habe die Leads ausgelöst, um zu folgen. Hat jemand jemals auf ein ähnliches Problem gestoßen? Oder gibt es einen Fehler in meinem Code, sodass er in bestimmten Umgebungen funktioniert und nicht in anderen funktioniert?

Top