WCF не может загрузить DLL - импортированная dll

У меня есть служба WCF, которая ссылается на LevelDB-sharp (https://github.com/meebey/leveldb-sharp), который, в свою очередь, ссылается на (DllImport) leveldb.dll.

На моей машине разработки все работает отлично, но как только я развертываю его в реальном времени, я получаю сообщение об ошибке

Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении: «Не удалось загрузить DLL leveldb.dll»: указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Я попытался поместить dll в каталог веб-службы, подкаталог bin, system32, а также system32 \ inertsrv и продолжаю получать ту же ошибку.

Я также пробовал жестко кодировать путь к вызовам DllImport.

Что мне не хватает?


person John    schedule 02.07.2017    source источник


Ответы (1)


Вызовы DllImport не следуют обычному пути зондирования .net, он просматривает пути переменных PAth в Windows.

Поскольку вы уже пытались поместить dll в inetsrv и system32, я предполагаю, что ваш пул веб-приложений IIS может работать в 32-битном режиме. Вы запускаете свой пул приложений в 32-битном режиме?

В таком случае попробуйте поместить leveldb.dll в папку syswow64 или в папку C: \ Windows \ SysWOW64 \ inetsrv.

iis 32 бит

person Rohith    schedule 03.07.2017