一:调试项目时,需要把IIS Express改为64位
1.报错:c# 无法加载DLL“###.dll”,: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
原因:程序没有找到dll文件,dll文件放在网站的那个项目bin包里(有些人可能在同一个解决方案下新建了一个类库,在类库里开发的dll,dll放在类库的bin包里,这也是找不到dll的)
2.报错:未能加载文件或程序集“XXXXX”或它的某一个依赖项。试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
原因:环境位数与dll位数不匹配,x64和x86的问题
方法:IIS调成64位(默认IIS是32位的)
VS2015自带IIS express,在vs的选项,选择工具->选项->项目和解决方案->Web项目
把IIS 64位打勾就可以了
3.报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
原因:这原因有很多种,如果功能还没有做,只是初始化SDK、登录功能就报此错误,那么就还是位数不匹配(报错2)
二:项目发布在IIS服务器上,需要把“启用32位应用程序”设置为false 。然后还有C++的DLL类库复制到 C:WindowsSystem32 文件夹下。
注:博主用的是64位C++ DLL ,但发布后没有放到 Bin包下 和 C:WindowsSysWOW64 下,因为这两个地方网站还是打不开 卡死。