it-swarm.com.de

SQL-Netzwerkschnittstellen, Fehler: 50 - Fehler bei der Laufzeit der lokalen Datenbank. Es kann keine automatische Instanz erstellt werden

Ich versuche, eine ASP.NET MVC 5-Webanwendung mit einem MyDatabase.mdf Datei in der App_Data Mappe. Ich habe SQL Server 2014 Express mit einer LocalDb -Instanz installiert. Ich kann die Datenbanktabellen mit dem Server-Explorer bearbeiten. Beim Debuggen der Anwendung und Aufrufen einer Seite, auf der die Datenbank benötigt wird, wird jedoch die folgende Fehlermeldung angezeigt.

Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zulässig sind. (Anbieter: SQL Network Interfaces, Fehler: 50 - Es ist ein Fehler bei der Laufzeit der lokalen Datenbank aufgetreten. Es kann keine automatische Instanz erstellt werden. Weitere Informationen zu Fehlern finden Sie im Windows-Anwendungsereignisprotokoll.

Also habe ich in der Ereignisanzeige unter Application nachgesehen und sehe immer und immer wieder nur eine Warnung.

Das zum Zwischenspeichern von komprimiertem Inhalt angegebene Verzeichnis ist ungültig. Statische Komprimierung wird deaktiviert.

Also habe ich versucht, den Server neu zu starten, immer noch nicht. Gleicher Fehler 50 wie zuvor.

Ich habe eine Klasse unter Models erstellt, in der ich eine Klasse namens Post habe.

namespace MyApplication.Models
{
    public class Post
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }
    }

    public class MyDatabase : DbContext
    {
        public DbSet<Post> Posts { get; set; }
    }
}

Ich habe auch ein Controller Setup, um die Beiträge von MyDatabase aufzulisten.

namespace MyApplication.Controllers
{
    public class PostsController : Controller
    {
        private MyDatabase db = new MyDatabase();

        // GET: Posts
        public ActionResult Index()
        {
            return View(db.Posts.ToList());
        }
    }

In meinem web.config Datei die Verbindungszeichenfolge sieht so aus ...

<connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=(LocalDB)\v12.0;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True" 
         providerName="System.Data.SqlClient" />
</connectionStrings>

Ich habe versucht, den Vorschlag geschrieben hier aber es hat nicht funktioniert. Auch versucht dies .

Ich bemerke auch, dass die MyDatabase-Instanz getrennt wird, nachdem ich die Anwendung gestartet habe. Wenn ich die Datenbank mit dem Server-Explorer in Visual Studio aktualisiere, kann ich die Tabellen anzeigen.

Wie kann ich eine Verbindung zur Datenbank herstellen und diese in Visual Studio 2013 bearbeiten, aber wenn ich die Anwendung debugge, kann keine Verbindung zur Datenbank hergestellt werden?

74

Aktuelle Änderungen an LocalDB: Gilt für SQL 2014 ; Werfen Sie einen Blick auf diesen Artikel und versuchen Sie (localdb)\mssqllocaldb als Servername für die Verbindung zur automatischen LocalDB-Instanz, zum Beispiel:

<connectionStrings>
  <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; 
  ...

Der Artikel erwähnt auch die Verwendung von 2012 SSMS zur Verbindung mit der 2014 LocalDB. Was mich zu der Annahme veranlasst, dass möglicherweise mehrere Versionen von SQL installiert sind - was mich darauf hinweist dies SO answer deutet darauf hin, dass der Standardname Ihrer LocalDB geändert werden sollte. " "Instanz", um zu vermeiden, dass in Zukunft andere Versionskonflikte auftreten. Diese werden nicht als Problemursache genannt, sondern um das Bewusstsein für mögliche Konflikte zu schärfen, zu denen mehrere SQL - Versionen, die auf einem einzelnen Dev - Computer installiert sind, führen können Gewohnheit, um einige zu vermeiden.

Eine weitere erwähnenswerte Sache: Wenn Sie Ihre Instanz in einen unbrauchbaren Zustand versetzt haben, weil Sie daran herumgebastelt haben, um dieses Problem zu beheben, lohnt es sich möglicherweise, von vorne zu beginnen - deinstallieren, neu installieren - und dann die mssqllocaldb zu verwenden. Wert anstelle von v12.0 und prüfen Sie, ob dies Ihr Problem behebt.

117
Bret

Laufen diese:

sqllocaldb create "v12.0"

Von cmd Prompt hat das für mich gelöst ...

36
Alex

Normalerweise behebe ich diesen Fehler im Anschluss an diesen msdn-Blogeintrag sing LocalDB with Full IIS

Dazu muss die Datei applicationHost.config bearbeitet werden, die sich normalerweise in C:\Windows\System32\inetsrv\config befindet. Befolgen Sie die Anweisungen aus KB 2547655, um beide Flags für den Anwendungspool ASP.NET v4.0 zu aktivieren:

<add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0"     managedPipelineMode="Integrated">
    <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" />
</add>
31
Matteo

Zu Beginn - es gibt 4 Probleme, die die common LocalDb SqlExpress Sql Server VerbindungsfehlerSQL Network Interfaces, error: 50 - Local Database Runtime error occurred Verursachen könnten, bevor Sie beginnen Sie muss v11 oder v12 in (localdb)\mssqllocaldb umbenannt werden

  • Sie haben nicht die Dienste ausgeführt
  • Sie haben nicht die Firelwall-Portshier konfiguriert
  • Ihre Installation hat und Problem/beschädigt ​​(die folgenden Schritte helfen Ihnen einen schönen sauberen Start)
  • Sie haben nicht benennen Sie die V11 oder 12 in mssqllocaldb um benennen Sie die Verbindungszeichenfolge von v12.0 In MSSQLLocalDB -wie so-> <connectionStrings> <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; ... um

Ich habe festgestellt, dass das Einfachste das Folgende ist - ich habe die Bilder und Schritte zur Hilfe angehängt.

Überprüfen Sie zuerst, welche Instanz Sie installiert haben. Sie können dies tun, indem Sie die Registrierung überprüfen und cmd ausführen

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" Wenn dieser Schritt fehlschlägt, können Sie mit der Option d cmd> Sqllocaldb.exe d "someDb" löschen.
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png

Edit 1: Registrierungspfad für alle Versionen Allgemeines Format, um die Registrierung aufzuspüren

// SQL SERVER RECENT VERSIONS
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\(instance-name)

// OLD SQL SERVER
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
// SQL SERVER 6.0 and above.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSDTC
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLExecutive
// SQL SERVER 7.0 and above

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLServerAgent
HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server 7
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServ65
19
transformer

Eine Instanz ist möglicherweise beschädigt oder wird nicht ordnungsgemäß aktualisiert
Probieren Sie diese Befehle aus =>

C:\>sqllocaldb stop MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" stopped.

C:\>sqllocaldb delete MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" deleted.

C:\>sqllocaldb create MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" created with version 13.0.1601.5.

C:\>sqllocaldb start MSSQLLocalDB<br>
LocalDB instance "MSSQLLocalDB" started.
8
Musab

vielleicht kam dieser Fehler, weil dieser version von SQL Server is not installed

connectionString="Data Source=(LocalDB)\v12.0;....

und Sie müssen es nicht installieren

das schnellste Update ist, es auf jede installierte Version zu ändern, die Sie haben

in meinem Fall ändere ich es von v12.0 bis MSSQLLocalDB

8

Ich bin auf dasselbe Problem gestoßen. Mein Fix änderte sich <parameter value="v12.0" /> bis <parameter value="mssqllocaldb" /> in die Datei "app.config".

3
Kos

Alle BITTE beachten Sie, was Tyler sagte

Beachten Sie, dass Sie zum Bearbeiten dieser Datei einen 64-Bit-Texteditor wie den Editor verwenden müssen. Wenn Sie eine 32-Bit-Version wie Notepad ++ verwenden, wird stattdessen automatisch eine andere Kopie der Datei in SysWOW64 bearbeitet. Stunden meines Lebens werde ich nicht zurückkommen

3
130nk3r5

Die endgültige Lösung für dieses Problem finden Sie unten:

  1. Nehmen Sie zuerst Änderungen in der applicationHost-Konfigurationsdatei vor. Ersetzen Sie den folgenden String setProfileEnvironment = "false" TO setProfileEnvironment = "true"

  2. Fügen Sie in Ihrer Datenbankverbindungszeichenfolge das folgende Attribut hinzu: Integrated Security = SSPI

3
Dalip Choudhary

In meinem Fall hatten wir mehrere Projekte in einer Lösung und hatten ein anderes Startprojekt als in der Package Manager-Konsole ausgewählt, als der Befehl "Update-Database" mit Code-First-Migrationen ausgeführt wurde. Stellen Sie sicher, dass Sie das richtige Startprojekt auswählen.

2
Michael Staples

Ich löse das obige Problem

enter image description here

Und nachdem Sie diese Änderungen vorgenommen haben, nehmen Sie die folgenden Änderungen in Ihrer web.config vor

 <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v12.0;AttachDbFilename=|DataDirectory|\aspnet-Real-Time-Commenting-20170927122714.mdf;Initial Catalog=aspnet-Real-Time-Commenting-20170927122714;Integrated Security=true" providerName="System.Data.SqlClient" />
1
Sagar Shinde