我正在尝试将我的 .NET 项目切换到管理 oracle 以使部署更容易。但是,我在测试 Win Server 2013 环境中遇到以下错误:
无法确定“Oracle.ManagedDataAccess.Client.OracleConnection”类型连接的提供程序名称。
到目前为止我采取的步骤:
- 从解决方案中删除了所有 Oracle.DataAccess dll 和引用
- 在 NuGet 包管理器中添加了适用于 .NET (ODP.NET) 托管驱动程序的 Oracle 数据提供程序
- 将所有
Imports Oracle.DataAccess
语句切换到Imports Oracle.ManagedDataAccess
我没有收到任何构建错误,并且该项目在本地运行良好。但是,当部署到测试环境时,我收到此错误。测试环境是 Windows Server 2012,并且安装了旧版 Oracle 11.2.0 客户端工具。
这是我的连接创建代码:
Public Sub New()
MyBase.New(
New OracleConnection(
ConfigurationManager.ConnectionStrings("Entities").ConnectionString),
True)
End Sub
这是我尝试过的 3 种不同样式的连接配置(都在本地工作,但在测试环境中产生相同的问题)
(为可见性而格式化)
<add
name="Entities"
connectionString="
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=###.###.###.###)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=______)));
User Id=_____;
Password=_____;"
providerName="Oracle.ManagedDataAccess.Client" />
<add
name="Entities"
connectionString="
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=###.###.###.###)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=______)));
User Id=_____;
Password=_____;"
providerName="Oracle.DataAccess.Client" />
<add
name="Entities"
connectionString="
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=###.###.###.###)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=______)));
User Id=_____;
Password=_____;"
/>
任何帮助将不胜感激!