RDP-Server mit C0000006 für Anwendungsprogramme

2787
16o1denRatio

In letzter Zeit hat unser RDP-Server einige Probleme.

Remotebenutzer verwenden den RDP-Server, um eine Verbindung zum Anwendungsserver herzustellen, während Benutzer, die sich im Aufbau befinden, eine direkte Verbindung zum Anwendungsserver herstellen.

Das Problem in letzter Zeit ist, dass Remote-Benutzer, die den RDP-Server verwenden, um eine Verbindung zum Anwendungsserver herzustellen, den Fehler C0000006 External Exception erhalten. Wenn der erste Benutzer diesen Fehler erhält, wird der Fehler langsam an Benutzer verteilt, bis alle, die Programm # 1 und Programm # 2 verwenden, den Fehler C0000006 erhalten. Ein Neustart des RDP-Servers behebt das Problem meistens .

Ich bin nicht sicher, was das Problem wäre, dass würde die C0000006 Fehler für diese beiden Programme verursachen (sie sprechen miteinander), aber in der Regel der erste Vorläufer dazu auf Benutzer sind schleichend Programm # 1 und Programm # 2 zeigt nach oben leer im Task-Manager wie folgt:

RDP Server C0000006 precursor.png

Ich weiß, dass dies ein langer Weg ist, aber eine Idee, was das verursacht? Es scheint die Kommunikation zwischen dem RDP-Server und dem Anwendungsserver zu sein . Die IT würde dieses Problem gerne von uns lösen, aber wenn es sich tatsächlich um einen Programmierfehler handelt, ist dies der Programmierfix des Drittanbieter-Beraters, der von ihnen gelöst werden muss.

0

1 Antwort auf die Frage

1
Ƭᴇcʜιᴇ007

0xC0000006-Fehler treten auf, wenn Ihr Programm mehr Daten für die EXE-Datei in den Arbeitsspeicher schreibt, dies jedoch nicht möglich war. Dies wird normalerweise durch ein E / A-Problem verursacht, wenn versucht wird, die Daten zu lesen.

Stellen Sie daher sicher, dass die Konnektivität zwischen dem Anwendungsserver und dem RDP-Server stabil ist und dass der Speicher auf dem Anwendungsserver antwortet und Daten schnell sendet. Grundsätzlich möchten Sie keine unerwarteten Abläufe oder lange Verzögerungen bei der Datenübertragung auf dem RDP-Server.

Eine weitere Option (oder zusätzliche Aktion) besteht darin, dass, da das Programm in Delphi geschrieben wird, es aufgrund des in Ihrem Screenshot angezeigten Symbols neu kompiliert werden kann, um einen Header zu enthalten, der Windows dazu auffordert, das gesamte Programm auf einmal in den Speicher zu laden. Vermeidung der Notwendigkeit, Daten später einblättern zu müssen, wodurch der Fehler vermieden wird ...

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP} 

Und stellen Sie sicher, dass das Winapi.Windowsin der UsesSektion enthalten ist.

Das erste Flag gibt an, dass es vollständig in den Speicher geladen werden soll, wenn sich das Programm auf einem Wechseldatenträger (z. B. einem Flash-Laufwerk) befindet, und das zweite fordert es auf, es zu tun, wenn sich das Programm auf einer Netzwerkfreigabe befindet (wie es wahrscheinlich bei Ihnen der Fall ist).

Weitere Informationen finden Sie unter StakcOverflow: