Запуск IIS с WOW64 и загрузка 64-битной DLL - PullRequest
0 голосов
/ 13 октября 2011

Клиент использует IIS с включенным WOW64 и жалуется, что не может загрузить нашу 64-битную DLL.

Есть ли способ сделать это?

Кроме того, работает ли IIS сWOW64 подразумевает, что весь код .NET выполняется в 32-разрядной среде выполнения .NET?

1 Ответ

1 голос
/ 27 марта 2012

Если IIS настроен на запуск 32-битного W3WP.EXE, который будет работать под WoW64, тогда да, все, что происходит в этом рабочем процессе, будет происходить в 32-битном режиме, и, таким образом, вы будете использовать 32-битный.NET runtime.

Следствием этого является то, что вы не можете загрузить 64-битную DLL, поскольку они несовместимы с 32-битными процессами.Либо вам нужно предоставить 32-битную версию вашей DLL, либо ваш клиент должен отключить 32-битный W3WP.exe.

Если ваша DLL является COM DLL, у вас есть еще один вариант: зарегистрировать ее вCOM + и запустить его из приложения IIS.Это означает, что ваш 32-битный код может вызывать 64-битный код с помощью механизмов вызова COM (которые Windows позаботится о вас).

Настройка в IIS для изменения этого параметра находится в пуле приложений.свойства в IIS и " Включить 32-разрядные приложения ".Установка на истинные силы 32-битных рабочих процессов;Значение false включает 64-битные рабочие процессы.

...