天地伟业64位SDK二次开发为网站

原文链接: http://www.cnblogs.com/HansZimmer/p/10435353.html

一:调试项目时,需要把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:\Windows\System32 文件夹下。
  注:博主用的是64位C++ DLL ,但发布后没有放到 Bin包下 和 C:\Windows\SysWOW64  下,因为这两个地方网站还是打不开 卡死。
 
 

转载于:https://www.cnblogs.com/HansZimmer/p/10435353.html

猜你喜欢

转载自blog.csdn.net/weixin_30471065/article/details/94794408