Дело в том, что программа КИАСУО ниже версии 1280 откомпилирована с опцией "для всех архитектур", и при запуске на 64 разрядных ОС не запускается. Лечится это довольно просто, ниже описана методика.

Смотрим статус:

C:\Users\Администратор>cd "C:\Program Files (x86)\КИАСУО3\OuServer\bin\Release"
C:\Program Files (x86)\КИАСУО3\OuServer\bin\Release>CorFlags.exe OuServer.exe
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  2.0.50727.42
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 9
ILONLY    : 1
32BIT     : 0
Signed    : 1

Видим, что флаг 32BIT : 0 не установлен.

Для запуска КИАСУО на Windows Server 2008 X64 нужно найти утилитку CorFlags.exe — 73.7 КБ, скопировать ее в папку с файлом OuServer.exe и проделать следующее:

C:\Users\Администратор>cd "C:\Program Files (x86)\КИАСУО3\OuServer\bin\Release"
C:\Program Files (x86)\КИАСУО3\OuServer\bin\Release>CorFlags.exe OuServer.exe /32BIT+ /Force
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  2.0.50727.42
Copyright (c) Microsoft Corporation.  All rights reserved.

corflags : warning CF011 : The specified file is strong name signed.  Using /For
ce will invalidate the signature of this image and will require the assembly to
be resigned.

Проверяем результат:

C:\Program Files (x86)\КИАСУО3\OuServer\bin\Release>CorFlags.exe OuServer.exe
Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  2.0.50727.42
Copyright (c) Microsoft Corporation.  All rights reserved.

Version   : v2.0.50727
CLR Header: 2.5
PE        : PE32
CorFlags  : 11
ILONLY    : 1
32BIT     : 1
Signed    : 1

Видим флаг 32BIT : 1 установлен, приятной работы!

После этого сервер запускается нормально. У меня заработал как в ручном режиме запуска, так и в режиме сервиса.


Ссылки по теме:

  1. CorFlags.exe (CorFlags Conversion Tool)
  2. Flipping bits on managed images to make them load with the right bitness...

Comments

comments powered by Disqus