0

Ich veröffentlichte ASP.NET MVC Core 1.1.1 Projekt in Produktion mit seiner SQL Server 2012 db. Nach ein paar Tagen habe ich gesichert und die Datenbank vom Produktionsserver zum Entwicklungscomputer wiederhergestellt und wieder an mein VS2017 Entwicklungsprojekt angeschlossen. Aber wenn ich versuche, die app es gibt mir die folgende Fehlermeldung auszuführen:EF - Migrationen auf Code zuerst: Ein Datenbankvorgang ist fehlgeschlagen während der Verarbeitung der Anfrage

A database operation failed while processing the request. 

InvalidOperationException: An exception has been raised that is likely due to a transient failure. If you are connecting to a SQL Azure database consider using SqlAzureExecutionStrategy. 
SqlException: A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.) 
Win32Exception: No process is on the other end of the pipe 

überprüfte ich die gleiche db Login, indem sie mit dem gleichen Login auf SSMS verbinden und es erfolgreich eine Verbindung mit dem db.

Darüber hinaus unter der obigen Fehlermeldung, ist es mit der Liste aller Migrationen das Projekt folgende Meldung hat:

Applying existing migrations for MyProjectContext may resolve this issue 
There are migrations for MyProjectContext that have not been applied to the database 

20161209232754_myFirstMigration 
20170121191004_mySecondMigration 
20170303172256_myThirdMigration 
20170303172256_myFourthMigration 

In Visual Studio, you can use the Package Manager Console to apply pending migrations to the database: 

PM> Update-Database 
Alternatively, you can apply pending migrations from a command prompt at your project directory: 

> dotnet ef database update 

HINWEIS:

  1. Entwicklungsmaschine ist Windows 10, Produktion Sever ist Windows Server 2012-R2. Beide Maschinen haben die gleichen Ausgaben von SQL Server 2012.
  2. Ich habe überprüft, dass sowohl das Projekt VS2017 als auch der Db genau dieselben Migrationen auf dem lokalen Entwicklungscomputer haben. Nach der Bereitstellung in der Produktion wurden die Migrationen auf der Entwicklungsmaschine nie geändert. Und wenn ich den empfohlenen Befehl PM> Update-Database -context MyProjectContext von der obigen Fehlermeldung ausführen, erhalte ich den Fehler: CREATE DATABASE permission denied in database 'master'.

Antwort

2

Ich habe einen ähnlichen Fall in der Vergangenheit hatten, wo die CREATE DATABASE permission denied in database 'master' Nachricht durch Weglassen der Verbindungszeichenfolge vollständig verursacht wurde (die wie eine stumme Sache klingt zu tun, aber es kann durch schlechte Konfiguration eines multi- passieren Projektlösung).

Überprüfen Sie, ob Ihre Konfigurationszeichenfolge vorhanden ist, den von Ihnen erwarteten Namen hat und für Ihre Anwendung sichtbar ist, wenn sie ausgeführt wird. Wenn Sie Ihren Entity Framework-Code in einer Klassenbibliothek haben, die für die Hauptanwendung freigegeben ist, stellen Sie sicher, dass Sie die Hauptanwendung als Startprojekt auswählen, bevor Sie Migrationen anwenden. EF weiß, wo die Datei App.config gesucht werden muss.

+0

Das war es. Login/Passwort waren korrekt, aber nicht die gesamte Verbindungszeichenfolge. Danke, dass du mich in die richtigen Richtungen geführt hast. – nam

Verwandte Themen