L’applicazione non può essere impalcata

Ho creato un’applicazione MVC 5 in VS 2013 Professional e successivamente ho utilizzato il codice EF 6.1 con un DB esistente su SQL Server Express. Quando provo a creare le viste, sto utilizzando il “Nuovo object scaffolded …”, quindi selezionando il “controller MVC 5 con viste, utilizzando Entity Framework”. Seleziono il modello e le classi di contesto e faccio clic su OK. Quindi viene visualizzato il seguente messaggio di errore e non viene creato alcun codice. Ho disinstallato EF Power Tools con lo stesso errore.

Errore

Si è verificato un errore durante l’esecuzione del generatore di codice selezionato: “L’eccezione di una chiamata è stata lanciata dall’objective di una chiamata”.

Ho anche provato a disinstallare / reinstallare VS 2013 e SQL Server senza modifiche.

Qualche altra idea su cosa potrebbe causare questo errore?

Ho avuto anche questo problema, ho risolto il problema chiamando la base.onModelCreating nel mio contesto DB

 base.OnModelCreating(modelBuilder); 

Nel mio caso ho spostato le mie stringhe di connessione da Web.config a

  

che quando ho iniziato a ottenere l’errore quando stavo provando a scaffold.

Si è verificato un errore durante l’esecuzione del generatore di codice selezionato: “L’eccezione di una chiamata è stata lanciata dall’objective di una chiamata”.

Spostando le mie stringhe di connessione su Web.config ho risolto il problema.

Questo ha risolto il problema per me,

Aggiunta di throwIfV1Schema: false to base di DbContext

In questo modo:

 public MyDbContext() : base("ConectionStringName", throwIfV1Schema: false) { } 

Risposta tardiva; ma, sto postando queste risposte con la speranza che qualcuno possa usare questa risposta per risolvere il loro problema.

Per qualche ragione, se il tuo programma NON è in grado di leggere le informazioni connectionString (sia da web.config o da altri mezzi), allora questo errore verrà generato.

Assicurarsi che le informazioni di connectionString valide vengano recuperate correttamente senza problemi.

Ho dovuto affrontare lo stesso problema durante la creazione del controller usando scaffold con ‘ASP.NET MVC5 usando le viste con Entity Framework’

Il problema era perché ho fornito il tag prima di in web.config. l’impostazione dopo risolto il problema.

Suppongo che, mentre lo scaffolding, ASP.NET MVC desideri risolvere prima Entity Framework, quindi la stringa di connessione, poiché ho fornito la stringa di connessione in precedenza in modo che dopo aver risolto la versione di Entity Framework non potesse trovare la stringa di connessione in modo da generare problemi di invocazione .

Ho avuto lo stesso messaggio di errore. Ho provato ad aggiungere una nuova Data context class dalla finestra di dialogo Aggiungi controller e quindi ho ricevuto un errore diverso:

 There was an error running the selected code generator: 'Sections must only appear once per config file. See the help topic  for exceptions. 

Risulta che ho avuto due elementi nel mio file web.config. (Ne avevo incollato uno da app.config della libreria di classi che conteneva il mio modello di Entity Framework.)

Nel mio caso, ho dovuto ripristinare il costruttore di DBContext semplicemente usando una stringa di connessione statica, come definito in web.config

Scaffolding non ha funzionato quando ho usato una stringa di connessione creata in modo dinamico.

 public MyContext() : base("name=MyContext") { } 

Ho avuto lo stesso problema in cui non avrebbe aggiunto elementi di scaffold, sembra che la disinstallazione di entity-framework tramite la console di gestione pacchetti di nuget funzioni

Per eseguire la console di Package Manager :

Strumenti -> NuGet Package Manager -> Console Gestione pacchetti

Rimuovere:

UnInstall-Package EntityFramework

Per reinstallare:

Install-Package EntityFramework

O in un solo comando:

Update-Package -reinstall EntityFramework

Spero che questo possa aiutare qualcuno in quanto mi ci è voluto un po ‘per arrivare a questo.

Questo può aiutare a risolvere il tuo errore.

Nel mio OnModelCreating lo stavo facendo per ciascuna quadro:

 modelBuilder.Configurations.Add(new EntityTypeConfiguration); 

Quando l’ho cambiato in seguito ho smesso di ricevere l’errore che stai ricevendo.

 modelBuilder.Entity(); 

Ho provato la maggior parte di sopra senza fortuna.

Ciò che alla fine ha funzionato è stato:

  1. Elimina la voce di stringa creata in precedenza in modo dinamico
  2. Elimina il mio modello (mantenendo tutti i controller e le viste)
  3. Ricrea il modello di dati di quadro ADO.NET – utilizzando lo stesso nome, creando una nuova voce di stringa di connessione con lo stesso nome di prima

Poi tutto ha funzionato di nuovo, meno 3 ore di tempo di sviluppo.

  1. aggiungere nuovamente (da un backup) tutti i miei attributi di proprietà alle classi tabella / quadro

Sembra avere qualcosa a che fare con la stringa di connessione creata dynamicmente e il modello. Gradirei qualsiasi pensiero su cosa potrebbe essere successo.

Nel mio caso, ho risolto il problema con la stringa di connessione in web.config.

Previura il problema che ho

e non so perché, ma non posso connettermi al database e fallire.

dopo il cambiamento

e funziona

La mia soluzione era semplice come cambiare il nome della stringa di connessione nella mia Web Config su DefaultConnection . Anche se il mio dbContext ha un altro nome!

Mi ci sono voluti 2 ore per scoprire questa assurdità!

Sembra un problema di connessione impostazione / voce incoerente in via Web.config . Per risolvere questo problema, segui i passaggi seguenti:

Rimuovere le informazioni relative alla connessione (con staring con da Web.config e rimuovere i modelli generati finora.

Ora genera il modello e aggiungerà una nuova voce di connessione nel file Web.config . Una volta che il modello è stato generato, costruisci la soluzione, quindi inizia a fare il ponteggio controllato. Funzionerà.

Mi sono imbattuto in questo problema anche con VS 2015. Ho provato tutte le altre soluzioni qui senza successo. Si è scoperto che la mia stringa di connessione (anche se formata esattamente come MS ci dice di formarlo) aveva bisogno di doppio \ per funzionare correttamente.

Ecco cosa non stava funzionando:

  

ed ecco cosa ho cambiato in modo da far funzionare il generatore di codice:

  

Notare il doppio carattere davanti a V11.0 e il nome del database.

Spero che questo salvi qualcun altro un po ‘di tempo.

AGGIORNARE

Questo fa sì che la generazione del codice funzioni, ma l’app non verrà eseguita perché \ V11.0 non è una stringa di connessione valida. Mi sembra che MS abbia un bug nella generazione del codice quando analizza la stringa di connessione. Ho dovuto cambiarlo in un singolo \ dopo aver eseguito la generazione del codice per far funzionare nuovamente l’app.

AGGIORNAMENTO 2

Dopo aver scavato un po ‘di più dal mio partner, abbiamo scoperto che quello che stava veramente rovinando la generazione del codice era il fatto che avevamo cambiato il campo “Catalogo iniziale”. Quando il progetto è stato creato dalla procedura guidata, imposta automaticamente il catalogo iniziale su aspnet–. Abbiamo quindi modificato questo campo del catalogo iniziale in DB. Questo ha funzionato bene per l’applicazione in esecuzione. Potrebbe arrivare al database bene. Ma per qualche ragione questo rovina la generazione del codice di scaffolding. Rimettendo il catalogo iniziale su ciò che era prima (l’aspnet–, lo scaffolding ha ripreso a funzionare (senza bisogno di \ V11.0).

Spero che aiuti qualcuno in futuro.

Controllare le relazioni tra quadro o altri problemi di progettazione del modello. Per il test, creare un nuovo modello di class senza relazioni e utilizzare Scaffold per generare controller e viste. Per me va bene.

Stavo ricevendo lo stesso errore quando ho apportato alcune modifiche al mio modello .. L’unico modo in cui sono riuscito a risolvere era 1) fermare / uccidere il processo 2) pulire la soluzione e ribuild la soluzione

Se per caso stai seguendo “Guida introduttiva a Entity Framework 6 Code First using MVC 5” di Tom Dykstra.

Ho raddoppiato il controllo di tutto e la mia stringa di connessione è perfetta. Quello che non sono riuscito a realizzare è che ho copiato un altro set di appSettings che ho già. Guarda sotto

        

Il mio consiglio è di controllare ogni centimetro di Web.config e sono sicuro che sia il colpevole.

Nel mio caso, NuGet ha aggiunto il seguente provider al web.config:

  

Quando ho cambiato il provider in

  

Ha risolto il problema (mi è costato circa 5 ore per capirlo :-()

Ho avuto lo stesso errore. Ecco le due cose che ho fatto per risolvere il problema:

  1. Aggiunto il nome alla base nel mio contesto: base (“nome = connectionstringname”)
  2. Ho fatto un errore nella stringa myconnection e l’ho risolto.

È (sono al 99% positivo) un problema di stringhe di connessione. Una volta risolto il problema in Web.Config, l’errore è andato via. Stavo usando DB prima, in un altro progetto e una volta copiata la prima stringa di connessione del DB da App.config nel web.config (usando lo stesso nome) ha funzionato come previsto.

Utilizzando Visual Studio 2015

Aggiornamento del server mysql e nel processo il mysql per gli studi visivi è stato aggiornato dal 6.9.7 al 6.9.8

Nella mia web config c’era ancora un riferimento alla vecchia versione 6.9.7

Ecco il mio git diff che ha risolto il problema:

 -  +  

Mi rendo conto che questa domanda è vecchia ora, ma ho pensato di postare ciò che ha risolto il mio problema nel caso in cui aiuti qualcuno più tardi. Nel mio caso, è stata una combinazione di diverse cose menzionate in altre risposte. Per proteggere la mia stringa di connessione avevo …

  1. Spostata la stringa di connessione dal file Web.config
  2. Spostato il nome e la password del server in un file separato a cui si fa riferimento nella parte AppSettings di Web.config
  3. Ho usato un SqlConnectionStringBuilder per mettere insieme gli elementi e poi passarlo al mio costruttore della class di contesto

Dopo averlo fatto, non sono stato in grado di creare altri controller. Per risolvere il problema, ho dovuto …

  1. Reinserire la stringa di connessione completa in Web.config E rimuovere il riferimento al file di stringa di connessione esterna
  2. Aggiungi un costruttore senza parametri alla mia class di contesto e public contextClass() : base("name=connectionStringName") { } il nome della mia connessioneString in questo modo: public contextClass() : base("name=connectionStringName") { }

  3. Ricrea la soluzione e crea nuovamente il controller, e ha funzionato!

tutti. So che sono un po ‘in ritardo, ma penso che sia ancora valido per condividere la mia esperienza con questo problema.

Ho affrontato questo messaggio in due progetti e in entrambi i casi il problema era con la stringa di connessione.

Nel primo caso era “InitialCatalog” anziché “Initial Catalog” (separato).

Nel secondo caso il nome del server (parametro Data Source) era sbagliato.

Spero possa essere d’aiuto.

I migliori saluti.

Per qualche motivo quando commento la sezione oracle.manageddataaccess.client tra in web.config, ha funzionato. (VS 2015 e ODT 12)

  

Nel mio caso, il problema è stato causato da un file di impostazioni dell’app esterno:

  

Riportare le impostazioni dell’app nel file web.config ha risolto il problema.

       

Utilizzo: VS 2015 Community Edition e EF 6.1.3 Implementato anche: metodo Seed, con una class personalizzata e configurato nel file web.config da eseguire ogni volta che il modello cambia. Questo sembra essere correlato a qualche errore di configurazione nel file web.config, nel mio caso, come alcuni dei casi che vedo in questo post con altre sezioni del file, la sezione è stata ripetuta con contenuti diversi, ma è stata ripetuta la tag principale ovviamente. Il caso della sezione fuori luogo, oltre la sezione, è anche causa dello stesso comportamento e di un messaggio ristretto durante il tentativo di impalcatura.

La tua class di contesto potrebbe generare un’eccezione.

Stavo seguendo il libro “C # 6.0 e .NET 4.6 Framework” e uno degli ultimi esercizi della sezione del livello di accesso ai dati era di aggiungere la registrazione. Beh, immagino che faccia esplodere il mago dell’impalcato. Probabilmente le autorizzazioni sui file su sqllog.txt o HttpRuntime non sono definite … chi lo sa. Quando ho commentato tutte queste cose, ha funzionato di nuovo.

 namespace AutoLotDAL.EF { using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Data.Entity.Infrastructure.Interception; using AutoLotDAL.Interception; using AutoLotDAL.Models; using System; using System.Data.Entity.Core.Objects; using System.Web; public class AutoLotEntities : DbContext { //static readonly DatabaseLogger databaseLogger = // new DatabaseLogger($"{HttpRuntime.AppDomainAppPath}/sqllog.txt", true); public AutoLotEntities() : base("name=AutoLotConnection") { ////DbInterception.Add(new ConsoleWriterInterceptor()); //databaseLogger.StartLogging(); //DbInterception.Add(databaseLogger); //// Interceptor code //var context = (this as IObjectContextAdapter).ObjectContext; //context.ObjectMaterialized += OnObjectMaterialized; //context.SavingChanges += OnSavingChanges; } //void OnObjectMaterialized(object sender, // System.Data.Entity.Core.Objects.ObjectMaterializedEventArgs e) //{ //} //void OnSavingChanges(object sender, EventArgs eventArgs) //{ // // Sender is of type ObjectContext. Can get current and original values, // // and cancel/modify the save operation as desired. // var context = sender as ObjectContext; // if (context == null) // return; // foreach (ObjectStateEntry item in // context.ObjectStateManager.GetObjectStateEntries( // EntityState.Modified | EntityState.Added)) // { // // Do something important here // if ((item.Entity as Inventory) != null) // { // var entity = (Inventory)item.Entity; // if (entity.Color == "Red") // { // item.RejectPropertyChanges(nameof(entity.Color)); // } // } // } //} //protected override void Dispose(bool disposing) //{ // DbInterception.Remove(databaseLogger); // databaseLogger.StopLogging(); // base.Dispose(disposing); //} public virtual DbSet CreditRisks { get; set; } public virtual DbSet Customers { get; set; } public virtual DbSet Inventory { get; set; } public virtual DbSet Orders { get; set; } } } 

EF 6.1 non supporta il modello di scaffolding utilizza EF 5 Chares