不同的我已經在我的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