WCF无法加载DLLImported dll

时间:2017-07-02 23:07:36

标签: wcf iis unmanaged leveldb

我有一个引用LevelDB-sharp(https://github.com/meebey/leveldb-sharp)的WCF服务,后者又引用(DllImport)leveldb.dll。

一切都在我的开发机器上完美运行,但是一旦我将其部署到实时,我就会收到错误消息

  

服务器在处理请求时遇到错误。例外   消息是'无法加载DLL'leveldb.dll':指定的模块   无法找到。 (HRESULT异常:0x8007007E)

我已经尝试将dll放在web服务目录,bin子目录,system32以及system32 \ inertsrv中并继续得到相同的错误。

我也尝试过硬编码DllImport调用的路径。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

DllImport调用不遵循正常的.net探测路径,它将通过Windows PAth变量路径查看。

由于您已经尝试将dll放到inetsrv和system32,我想您的IIS Web应用程序池可能正在32位模式下运行。您是否以32位模式运行应用程序池?

  

如果是这样,请尝试将leveldb.dll放入syswow64文件夹或   C:\ Windows \ SysWOW64 \ inetsrv文件夹

iis 32 bit