我有一台新的开发机器Windows 7 x64,我正在编写一个针对Oracle数据库的MVC3应用程序。我已经尝试了我所知道的一切,但没有成功。
以前,我在Win7 x32机箱上进行开发,可以在本地进行调试,但无法在Win2008 x64服务器上进行部署和运行,尽管安装了ODP.Net和11g客户端。
“无法加载文件或程序集'Oracle.DataAccess'或其中一个 依赖。尝试加载程序不正确 格式“
在我的新x64机器上,我可以构建项目但是当我尝试通过IDE运行它时,我得到:
“提供程序与Oracle客户端版本不兼容”
我完全失去了。
是否有人有类似的设置,可以分享详细的安装说明,详细说明如何以及如何在我的x64机箱上的IDE中调试Oracle.DataAccess,以及部署到x64服务器?
不应该这么困难。
答案 0 :(得分:2)
我确实在Windows 7x64上运行了这个ODAC安装附带的Oracle 11g R2客户端:
http://www.oracle.com/technetwork/topics/dotnet/index-085163.html
确保您在本地安装了x64版本,并且可能必须执行uninstall-reboot-reinstall-reboot tango。我也有奇怪的问题让它看到TNSNAMES条目并且必须使用EZCONNECT字符串,但这不是你的问题。
事实上,我也使用32位EF测试版在x64上工作,它运行良好:
http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html
虽然我认为EF的实现还没有为黄金时间100%做好准备(我们最终使用了DevArt驱动程序,因为它对计算字段有更可靠的支持 - 我们从未在ODP中使用计算或身份时间戳.NET EF Beta,虽然奇怪的是触发器填充的主键NUMBER字段确实有用。)
我没有做任何特别的事情,我也没有在服务器端做任何特别的事情(同时使用10g和11gR2)。
答案 1 :(得分:2)
所以我终于明白了。以下是我一步一步做的事情:
然后我在 BOTH 上安装了" 64位ODAC 11.2版本3(11.2.0.2.1)for Windows x64" 开发和生产mahcines。
install.bat odp.net4 c:\ oracle \ odac11.2.x64 odac112x64
当我在IDE中本地运行它时出现错误:
"无法加载文件或程序集' Oracle.DataAccess, Version = 4.112.2.0,Culture = neutral,PublicKeyToken = 89b483f429c47342' 或其中一个依赖项。系统找不到指定的文件。"
我安装了" ODAC 11.2版本3(11.2.0.2.1)和Xcopy部署"这是ODP.NET的x32版本
install.bat odp.net4 c:\ oracle \ odac11.2.x32 odac112x32
当我在本地重新运行MVC网站项目时,它按预期工作了!
更新的后续信息#1: 在我开始工作后,我试图将相同的步骤应用到另一台服务器,但它失败了。问题是"允许32位应用程序"在应用程序池中设置为TRUE。禁用32位应用程序(仅允许64位)解决了新计算机上的问题。
更新了后续信息#2: 新计算机上的ODAC安装无法将安装和bin目录放在环境路径中(我讨厌Oracle)。一旦添加,所有内容都按照需要运行。
答案 2 :(得分:0)
我已经有很长一段时间没有使用过ODP.NET了,所以我正在记忆上次使用它时遇到的问题。
ODP.NET位必须安装在服务器上(或至少已部署,但我不确定如何实现这一点)。 ODP.NET中的实际客户端与用于Oracle访问的Java库相同。如果已安装,则使用底层Java库时会出现某种类型的配置错误或权限问题。
然而,我不确定IDE消息是什么。