Сервер RDP, предоставляющий C0000006 для прикладных программ

2702
16o1denRatio

В последнее время у нашего RDP-сервера возникли некоторые проблемы.

Удаленные пользователи будут использовать RDP-сервер для подключения к серверу приложений, а пользователи, находящиеся в здании, будут подключаться напрямую к серверу приложений.

В последнее время проблема заключается в том, что удаленные пользователи, использующие RDP-сервер для подключения к серверу приложений, получат ошибку внешнего исключения C0000006. Когда первый пользователь получит эту ошибку, ошибка будет медленно распространяться среди пользователей, пока все, кто использует Программу № 1 и Программу № 2, не получат ошибку C0000006. Перезагрузка RDP-сервера устраняет проблему в большинстве случаев.

Я не уверен, что этот вопрос будет то, что будет вызывать ошибку C0000006 для этих двух программ (они говорят друг с другом), но, как правило, первый предшественником этого подкрадываться пользователями являются программы № 1 и Программа # 2 показывают вверх пусто в диспетчере задач примерно так:

RDP Server C0000006 precursor.png

Я знаю, что это длинный выстрел, но есть идеи, что может быть причиной этого? Похоже, что связь между RDP - сервером и сервером приложений . ИТ-специалисты хотели бы решить эту проблему с нашей стороны, но если это на самом деле ошибка в программировании, то это исправление программирования стороннего консультанта, и оно должно быть им устранено.

0

1 ответ на вопрос

1
Ƭᴇcʜιᴇ007

0xC0000006 errors arise when your program goes to page more data for the EXE into memory, but couldn't. Usually this is caused by an I/O issue when attempting to read the data.

So ensure that the connectivity between the application server and the RDP server is stable, and that the storage in the application server is responding and sending data quickly. Basically you want no unexpected drops, or long delays in data coming into the RDP server.

Another option (or additional action), since judging by the icon shown in your screenshot, is that since the application is written in Delphi, it can be recompiled to include a header that will tell Windows to load the whole program into memory at once, avoiding the need to page in data later, thus avoiding the error...

{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP} 

And ensure that the Winapi.Windows is included in the Uses section.

The first flag tells it to load entirely into memory if the program is located on a removable drive (i.e.: a flash drive) and the second tells it to do it if the program is located on a network share (as yours probably is).

More info is available on StakcOverflow: