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 ()
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?