엔터프라이즈 라이브러리 DAAB 6을 사용하고 있습니다. Oracle 데이터베이스와 통신하기 위해 EntLib Contrib 라이브러리를 사용하고 있습니다. 내가 NuGet을 사용하여 필요한 모든 패키지를 설치 한 엔터프라이즈 라이브러리 DAAB 6 및 ODP.NET - 기본 데이터베이스 'XXX'의 연결 문자열이 없습니다.
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
</configSections>
<dataConfiguration defaultDatabase="OracleConnectionString">
<providerMappings>
<add databaseType="EntLibContrib.Data.OdpNet.OracleDatabase, EntLibContrib.Data.OdpNet, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null"
name="Oracle.DataAccess.Client" />
</providerMappings>
</dataConfiguration>
<connectionStrings>
<add name="OracleConnectionString" connectionString="Data Source=localhost:1521/dev;User ID=db_owner;Password=admin;"
providerName="Oracle.DataAccess.Client" />
</connectionStrings>
<configuration>
처럼 내 응용 프로그램의
구성 파일을 찾습니다. 나는 또한 Oracle.DataAccess.dll 파일에 대한 참조를 추가 한
<packages>
<package id="EnterpriseLibrary.Common" version="6.0.1304.0" targetFramework="net45" />
<package id="EnterpriseLibrary.Data" version="6.0.1304.0" targetFramework="net45" />
<package id="EntLibContrib.Data.OdpNet" version="6.0.1304.0" targetFramework="net45" />
</packages>
: 같은 Package.Config 파일을 찾습니다.
나는 코드
var database = new DatabaseProviderFactory().CreateDefault();
위의 라인은 매우 이상한 오류 메시지를 생성의 다음 줄을 사용하여 데이터베이스에 연결합니다. 전체 스택 추적은 아래와 같습니다 :
System.InvalidOperationException: The connection string for the default database 'OracleConnectionString' does not exist or does not have a valid provider.
---> System.Configuration.ConfigurationErrorsException: The requested database OracleConnectionString does not have a valid ADO.NET provider name set in the connection string. (C:\Test\OraConsole\bin\Debug\OraConsole.vshost.exe.Config line 13)
at Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDatabase(String name)
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.DatabaseConfigurationBuilder.<CreateDefault>b__2(String n)
--- End of inner exception stack trace ---
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.DatabaseConfigurationBuilder.<CreateDefault>b__2(String n)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.DatabaseConfigurationBuilder.CreateDefault()
at Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.CreateDefault()
at Data.OdpNet.QuickStarts.Console.Program.Main(String[] args) in c:\Test\OraConsole\Program.cs:line 15
가는 Oracle 데이터베이스에 대해 잘 작동 tnsping.
나는이 특정 오류 메시지를 봤지만,이 문제에 대한 해결책을 찾을 수 없습니다. 또한 Contrib 소스와 함께 제공되는 QuickStart 코드 샘플을 시도했습니다. 그것도 같은 오류 메시지를 생성합니다.