3

Ich versuche IdentityServer3 einzurichten, mit Oracle-Datenbank zu arbeiten. Ich habe eine MSSQL-Lösung und ich brauche auch eine Oracle-Variante.Wie initialer Katalog in Verbindungszeichenfolge für Oracle festgelegt?

Während der Initialisierung bekomme ich folgenden Fehler. Es sieht so aus, als ob der Provider eine Zeitüberschreitung (30-45 s) erreicht und dann die Ausnahme auslöst.

The supplied SqlConnection does not specify an initial catalog or AttachDBFileName. 

Fehler tritt in System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create auf. Um genauer zu sein in

IdentityServer3.EntityFramework.DbModelBuilderExtensions 
.RegisterScopeChildTablesForDelete[TScope](DbContext ctx) in 
IdentityServer3.EntityFramework\Source\Core.EntityFramework\Extensions 
\DbModelBuilderExtensions.cs 

Hier ist meine web.config Verbindungszeichenfolge:

<add name="ApplicationDbContext" 
    providerName="Oracle.ManagedDataAccess.Client" 
    connectionString="User Id=xxxxxxx; 
         Password=xxxxxxx; 
         Data Source=OracleDataSource" /> 

und hier ist der Rest web.config (jeder, wie im Zusammenhang mit Oracle)

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
     <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
    </providers> 
    </entityFramework> 

    <system.data> 
    <DbProviderFactories> 
     <remove invariant="Oracle.ManagedDataAccess.Client" /> 
     <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
    </DbProviderFactories> 
    </system.data> 

    <oracle.manageddataaccess.client> 
    <version number="*"> 
     <dataSources> 
     <dataSource alias="OracleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=XE))) " /> 
     </dataSources> 
    </version> 
    </oracle.manageddataaccess.client> 

Wie kann ich Fügen Sie Initial Catalog zu meiner Verbindungszeichenfolge für Oracle hinzu?

Versionen

  • IdentityServer3: v 2,5

  • EntityFramework: 6.1.3

  • Oracle ManagedDataAccess EntityFramework: 12.1.4

Update 1:

Ich habe einfach versucht Initial Catalog meine conn String hinzufügen, aber es scheint nicht zu funktionieren (Oracle XE, C++ ADO):

<add name="ApplicationDbContext" 
    providerName="Oracle.ManagedDataAccess.Client" 
    connectionString="User Id=xxxxxxx; 
         Password=xxxxxxx; 
         Data Source=OracleDataSource; 
         Initial catalog=XE" /> 

Vielleicht XE nicht der Name meiner Datenbank? Sollte ich stattdessen schema verwenden?

Antwort

0

Das Problem wurde defaultConnectionFactory

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 

mit OracleConnectionFactory Dinge Nach dem Wechsel zog auf

<defaultConnectionFactory type="Oracle.ManagedDataAccess.EntityFramework.OracleConnectionFactory, Oracle.ManagedDataAccess.EntityFramework" /> 
Verwandte Themen