我们已经为Oracle安装了32位odp.net驱动程序。我们的服务器当前托管使用过时的Microsoft Oracle驱动程序的应用程序。
要在服务器上使用新的odp.net驱动程序,是否会与微软的旧驱动程序发生冲突?
需要在服务器上安装什么?(如何避免与现有web应用程序发生冲突?)
发布于 2013-02-02 02:47:00
System.Data.OracleClient以与odp.net相同的方式依赖非托管Oracle客户端软件:
http://msdn.microsoft.com/en-us/library/2d7h4ycx.aspx
Oracle的Oracle框架数据提供程序使用
客户端软件提供的Oracle调用接口( .NET )提供对Oracle数据库的访问。数据提供程序的功能设计为与用于SQL Server、OLE DB和.NET的ODBC数据提供程序的功能类似。
安装Oracle客户端时,它会建立一个"oracle_home“(多个oracle主目录被占用),并使用各种方法查找相关的依赖项,包括注册表(HKLM/软件/Oracle)、.config选项和path语句。我不能确切地确定System.Data.OracleClient使用的是哪种方法,但我猜它依赖于path环境变量,就像旧版本的客户端一样。
安装一个新的客户端可能会把自己放在path语句的第一位。例如,在安装了我的4个客户端的情况下,考虑命令行"set“命令中的以下代码:
Oracle OS=Windows_NT Path=C:\Program文件\通用文件\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\OracleDACx64\bin;C:\Oracle\product\11.2.0\client_1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShe ll\v1.0\;C:\ORA6i\bin;C:\ORANT\bin;C:\Windows\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ORA6i\jdk\bin;C:\Windows\system32;C:\WINDOWS;C :\WINDOWS\System32\Wbem;C:\ORA6i\jdk\bin;C:\ORA6i\bin;C:\ORANT\bin;C:\Windows\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\ORA6i\jdk\bin;
在这一点上,现有的客户端用户将开始使用您新安装的客户端,这是可能的。因此,您可能需要在安装之前和之后检查系统中是否有此类更改。
在新的客户端下运行可能会很好,但如果您希望避免接触现有的系统。请考虑改用xcopy install。以下是有关安装它的信息的一些链接:http://www.oracle.com/technetwork/issue-archive/2008/08-nov/o68odpnet-101744.html http://www.brothersincode.com/post/Oracle-ODPnet-xcopy-deployment-for-aspnet.aspx
xcopy安装不会将自身添加到path语句中,因此它不会影响其他安装。新版本的odp.net应该通过注册表解析非托管二进制文件,所以你的新应用程序可能会毫不费力地找到它。但是,我发现dllPath配置更可靠-以下内容将放入您的配置文件中:
<configuration>
<oracle.dataaccess.client>
<add key="DllPath" value="c:\oracle\product\1.1.0-xcopy-dep\BIN"/>
</oracle.dataaccess.client>
</configuration>发布于 2013-02-01 15:28:56
据我所知,没有冲突。这对Oracle来说会更好--开发进度比MS解决方案更大。您可以在此处阅读有关安装过程和要求的所有信息-> Oracle® Data Provider for .NET
https://stackoverflow.com/questions/14638552
复制相似问题