参考众多网上答案,综合实际操作,找了一条切实可行的道路。
先分享失败经验
发布环境 64位WindowsServer2008 装 32位oracle服务器和32位Oracle客户端
开发环境 32位Win7 32位oracle客户端 VS2008
发布出现 “尝试加载 Oracle 客户端库时引发 BadImageFormatException。如果在安装 32 位
Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题” 错误
失败1 尝试修改hibernate配置文件中 oracle客户端版本号,无效。
失败2 尝试以修改项目属性->生成->目标平台 改为 x86,无效。
分析原因,大概是开发环境没有改变。若在64位操作系统,再以x86形式发布也许有效。
失败3 服务器安装64位oracle客户端,无效。
分析原因,大概是环境变量修改后没有重启服务器,也就是没有应用?也许是这个原因,实际情况不允许尝试。
当当当当当当
成功经验
首先
打开IIS管理器,找到应用程序池,在Classic.net上面点右键,打开高级设置窗口,将其中的“启用32位应用程序”设为“True”。
重新启动Classic.net。
如果不起作用,把DefaultAppPool,也改了。重新启动。
还不行,就重新启动IIS。
这样应该就可以正常使用发布的网站了。
其次
为了保险起见,因为装了64位客户端,怕影响pl/sql developer。手动修改一下配置。
菜单-tools-preferences-oracle-connection
Oracle Home和OCI library 都修改为32位客户端的目录就可以了