2016-08-11 8 views
0

Ich erhalte diese Störung, wenn ich auf Oracle-Datenbank verbunden möchte meine asp.net Web appkonnte nicht Datei oder Assembly ‚laden Oracle.ManagedDataAccess.EntityFramework

The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) 
... 

Line 22:  { 
Line 23:   public ApplicationDbContext() 
Line 24:    : base("DefaultConnection", throwIfV1Schema: false) 
Line 25:   { 
Line 26:   } 

Die MVC Web-App starten und ich EntinyFramework 6.1.3 über NuGet,

ich verwende Windows 7 64-bit, V.Studio 2015 und 32-Bit-ODAC 12c Release 4

ich in Visual Studio zu setzen versucht, in x64 zu starten oder x86, hilft nicht ..

Bitte geben Sie mir einen Rat. Vielen Dank.

-Code hinter: Web.config:

<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="Oracle.ManagedDataAccess.Client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.12.1.0.2.4, Culture=neutral, PublicKeyToken=89b483f429c47342"/> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <sectionGroup name="devExpress"> 
     <section name="themes" type="DevExpress.Web.ThemesConfigurationSection, DevExpress.Web.v16.1, Version=16.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false" /> 
     <section name="compression" type="DevExpress.Web.CompressionConfigurationSection, DevExpress.Web.v16.1, Version=16.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false" /> 
     <section name="settings" type="DevExpress.Web.SettingsConfigurationSection, DevExpress.Web.v16.1, Version=16.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false" /> 
     <section name="errors" type="DevExpress.Web.ErrorsConfigurationSection, DevExpress.Web.v16.1, Version=16.1.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20160811110342.mdf;Initial Catalog=aspnet-WebApplication1-20160811110342;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    <add name="Model1" connectionString="DATA SOURCE=XXXXX;PERSIST SECURITY INFO=True;USER ID=XXXX" 
     providerName="Oracle.ManagedDataAccess.Client"/> 
    <add name="xpf.printing" connectionString="xpoprovider=MSSqlServer;data source=(localdb)\mssqllocaldb;attachdbfilename=|DataDirectory|\ReportService.mdf;integrated security=True;connect timeout=120" /> 
    </connectionStrings> 
    .... 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=4.12.1.0.2.4, Culture=neutral, PublicKeyToken=89b483f429c47342"/> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
    .... 
</configuration> 

IdentityModels.cs:

using System.Data.Entity; 
using System.Security.Claims; 
using System.Threading.Tasks; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 

namespace WebApplication1.Models 
{ 
    // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more. 
    public class ApplicationUser : IdentityUser 
    { 
     public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
     { 
      // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 
      var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
      // Add custom user claims here 
      return userIdentity; 
     } 
    } 

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
    { 
     public ApplicationDbContext() 
      : base("DefaultConnection", throwIfV1Schema: false) 
     { 
     } 

     public static ApplicationDbContext Create() 
     { 
      return new ApplicationDbContext(); 
     } 
    } 
} 
+0

Sie sollten von der Oracle-Site laden Sie die 32Bite Oracle.DataClient und legen Sie das Projekt zu x86 gibt es ein bekanntes Problem/Bug mit der 64-Bit-Client-Version und es wird auf einem 64-Bit-Betriebssystem mit der arbeiten 32bit 'Oracle.DataAccess.Client;' Ich arbeite mit diesem auf einer täglichen Basis und ich kopiere die DLL in einen Abhängigkeitsordner Einstellung der CopyLocal = True-Eigenschaft, wenn ich die Referenz hinzufügen – MethodMan

+0

Wie fügen Sie diese Referenzen? nuget? – Fran

+0

Ich postete mehr Informationen über mein Problem .. @MethodMan: im usin 32Bite Oracle.DataClient ... Verstehst du nicht über dll, woher zu wo kopieren und welche Referenz ?? Vielen Dank. – Petars

Antwort

0

Ich habe den gleichen Fehler und ich wurde wie folgt festgesetzt: Sie benötigen eine Web ändern. Konfiguration wie folgt:

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

Und Sie müssen EntityFr installieren amework 1. Install-Package EntityFramework -Version 6.1.1 2. Fügen Sie einen Verweis von Ihrem Link-Setup ODAC 12c Release 4 Oracle.ManagedDataAccess.EntityFramework.dll Oracle.ManagedDataAccess.dll zu Ihrem Projekt hinzu. Es ist getan

Verwandte Themen