不同的我已经在我的web.config文件获取web.config中指定ODP.net的版本,这是从已安装的版本
<DbProviderFactories>
<remove invariant ="Oracle.DataAccess.Client" />
<add name="ODP.NET, Unmanaged Driver"
invariant="Oracle.DataAccess.Client"
description="Oracle Data Provider for .NET, Unmanaged Driver"
type="Oracle.DataAccess.Client.OracleClientFactory,
Oracle.DataAccess, Version=4.121.1.0, Culture=neutral,
PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
我的开发机器使用OPD.net版本4.121.1.0,我以下已经添加了对该文件的引用并指定它应该在本地复制。我的部署服务器有一个较旧的客户端10.2.0.100,位于D:\ oracle \ product \ 10.2.0 \ db_1 \ BIN中。由于此应用程序将部署到多个服务器配置,因此我不想管理每个服务器的Oracle客户端。我认为,通过增加
<remove invariant ="Oracle.DataAccess.Client" />
我会删除与其他版本的任何冲突,除了我得到...
The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception
看完后,似乎有可能能够只使用在我的web.config的上面几行,并指定我想使用哪个版本的ODP.net,但它不适用于我。我正在寻找可能,这是做这件事的正确方法吗?
谢谢。任何帮助是极大的赞赏。
谢谢b_levitt。链接中的视频以及您的摘要最有用。我发现在bin目录中包含tnsnames.ora文件并不够,但我需要创建一个tnsnames.ora-less配置。即数据源=(描述=(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = myhost)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl))); User Id = oracle_user;密码= oracle_pwd;“作为我的连接字符串的一部分,目前我已经在两个不同的系统上进行了测试,并且两者都起作用 – Trebor
非常感谢您的支持我在tnsnames上找到了有趣的小技巧: 注意:默认的ODAC GUI安装程序在machine.config文件中创建TNS_ADMIN属性,该属性将覆盖位于应用程序工作目录中的tnsnames.ora文件的使用情况,在继续执行此OBE之前,我们建议您在machine.config文件中注释掉该属性。 来自:http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/appdev/dotnet/Web_version_Fully_Managed_ODPnet_OBE/odpnetmngdrv.html –
好像Oracle不够复杂,他们不得不添加另一个晦涩的“功能”。谢谢你的提醒。幸运的是,我只在我的开发机器上使用Easy Client,而不需要他们的GUI工具。 – Trebor