不幸的是,我正在尝试使用.NET中的Oracle,这就像回到1997年.正确解释事情是一个弱点的迹象,注册表和环境变量似乎具有特色.
所以这是我有多远.
我在Oracle.com上填写了一份关于我生活的大表,然后下载了
ODBC Windows 64位实例客户端,11.2.0.3.0并将其解压缩到一个文件夹中. 基本的Windows 64位Instant Client,11.2.0.3.0并将其解压缩到与上面相同的文件夹中.
我运行了安装.exe(没有MSI,记得这是1997).
我添加了一个TNS_NAMES环境变量,指向网络共享上的公司TNSNames.ora文件,并在控制面板中设置一个快速DSN并运行测试 - 它工作正常!
然后我下载了最新的ODP.NET for .NET 4.0的XCOPY版本,并将其复制到我的源代码控制工作区下的Dependencies文件夹中.
我从我的项目添加了一个引用到Dependencies\odp.net4\odp.net\bin\4\Oracle.DataAccess.dll
我读过,我需要让管理ODP.NET东西,知道在哪里可以找到其非托管Oracle库,我猜是依赖\ odp.net4\BIN\OraOps11w.dll但它可能是一些其他的Oracle二进制文件某处?
现在我正在设置一个名为DllPath的配置文件参数.遗憾的是,Oracle文档似乎没有意识到.NET配置文件需要在configSections部分中连接它们的部分.
这是配置文件部分.
<oracle.dataaccess.client>
<add key="DllPath" value="D:\Trunk\Dependencies\odp.net4\bin" />
</oracle.dataaccess.client>
Run Code Online (Sandbox Code Playgroud)
configSection中有什么内容?我在这上面找到的几个线程给出了一个例子,然后说"我不知道应该是什么类型",这是主要的一点!
任何人都可以建议我吗?有没有人知道从.NET查询Oracle视图的傻瓜指南的链接?
我能在1997年做些什么来阻止自己在2012年使用Oracle吗?
UPDATE
只是一个快速更新.我已将OraOps11w.dll复制到我的输出bin文件夹中,并删除了我之前添加的任何web.config文件更改.
我现在得到以下错误,我正在研究.
无法加载文件或程序集"Oracle.DataAccess"或其依赖项之一.尝试加载格式不正确的程序.
其他一些论坛说说在GAC,这我很希望避免注册Oracle.DataAccess.dll - 我无法看到其中的差别是什么呢,但我给它一个去.
更新2
在GAC中注册Oracle.DataAccess.dll库没有任何区别,我已取消注册.
工作周的结束在我身上,我要赶火车,但是我在这里通过电子邮件发送的另一开发团队,并希望他们并肩作战之前(而不是用于夜间提取其他人一样).
更新3
今天早上我下载并安装了64位版本的IIS Express 8.0 RC.VS2010不支持64位版本,因此需要从命令行运行.这很简单,通过查看任务管理器,我能够看到VS用于iisexpress.exe*32的命令行.
不幸的是,当浏览到由64位IIS Express托管的我的站点时,我收到此错误.
处理程序"ExtensionlessUrl-Integrated-4.0"在其模块列表中有一个错误的模块"ManagedPipelineHandler"
这个问题在这个问题上太过分了,所以我将尝试使用32位版本的ODP.NET.
更新4
我下载了32位版本的完整安装,但是当我看到Oracle Universal Installer时我感到很害怕.与我珍贵的开发盒相信它看起来太过90年了.所以我使用的是32位'XCopy'客户端,这让我可以打开我网站的主页,因此引用正在运行.感谢那些暗示架构不匹配32/64问题的人.
现在我在实例化一个新的OracleConnection时正在研究这个错误.
提供程序与Oracle客户端版本不兼容
更新5我想我已经做到了.
所以我下载了32位最新的11g"Instant Client",并将它放在我的\ Dependencies文件夹中,用于解决方案中继代码库.我将此文件夹添加到%PATH%系统环境变量中,并将OraOps11w.dll文件放入其中.
最后,_oracleConnection = new OracleConnection(connectionString)不会抛出!现在我需要确保在我部署生产时我在桌子上放了一瓶Laphroaig.
因此,回顾一下,对于Windows 7,64上的IIS Express 7.5(这是一个32位进程):
将32位11g"Instant Client"下载并解压缩到某个文件夹,然后将此位置添加到PATH中.Oci.dll是主要的Oracle客户端非托管库.
下载并将32位ODP.NET解压缩到某个文件夹.
将OraOps11w.dll复制到Instant …