2014-12-05 1 views
6

Ich werde eine ASP.NET MVC-Website in einem lokalen Netzwerk vorführen. Diese Anwendung hat eine Verbindung zu einer Datenbank:Wie kann IIS die lokale Datenbank aus einem ASP.NET MVC-Projekt verwenden?

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-EBC-20141127093222.mdf;Initial Catalog=aspnet-EBC-20141127093222;Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Ich möchte, wenn diese Datenbank sowohl von IIS verwendet werden kann, und wenn ich meine lokal Anwendung. Ich habe eine Website auf IIS erstellt - es läuft .NET v4. Mein Projekt lebt in c:\inetpub\www\ebc. Ich kann die Website veröffentlichen, aber diesen Fehler empfangen auf der Anzeige der Seite:


„Ein netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server Der Server wurde nicht gefunden oder nicht zugänglich war.. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server für Remoteverbindungen konfiguriert ist. (Anbieter: SQL Network Interfaces, Fehler: 50 - Fehler bei lokaler Datenbanklaufzeit. Unerwarteter Fehler bei einem API-Methodenaufruf der LocalDB-Instanz. Siehe Windows-Anwendung Ereignisprotokoll für Fehlerdetails. "

Ich weiß, ich muss Remote-Verbindungen zu den SQL-Server über Microsoft SQL Server-Manager zulassen? Gibt es eine Möglichkeit, es zu tun els Wo?

Antwort

6

Die beste Lösung ist SQL-Ausdruck zu verwenden, aber wenn Sie es nicht wollen, sind einige Schritte, die Sie tun müssen, um Ihre mvc Anwendung Arbeit mit localdb

  1. Öffnen Sie Visual Studio-Eingabeaufforderung als Administrator machen
  2. ausführen sqllocaldb share v11.0 IIS_DB (dann wird die Datenbank gemeinsam genutzt werden und IIS darauf zugreifen können)
  3. ändern sie die Seite Verbindungszeichenfolge auf den gemeinsam genutzten Instanz von DB Punkt: Data Source=(LocalDb)\.\IIS_DB dann erneut veröffentlichen
in diesem Punkt

Beachten Sie, dass Sie einen Zugang verweigern Fehler erhalten kann und es ist, wie es

  1. Zum Visual Studio beheben => databaseexplorer => Verbindung
  2. Für den Namen eingeben Server hinzufügen (LocalDb)\.\IIS_DB dann Rechtsklick auf die Verbindung und neue Abfrage wählen, und führen Sie diesen Befehl

    create login [IIS APPPool\DefaultAPPPool] from windows; 
    exec sp_addsrvrolemember N'IIS APPPool\DefaultAPPPool, sysadmin 
    
3

Wenn es mehrere Versionen von SQL Server LocalDB installiert sind in Eine Maschine, dieser Fehler ist sehr häufig.

Versuchen Sie (localdb)\mssqllocaldb als gemeinsamen Servernamen für die Verbindung mit der automatischen LocalDB-Instanz anstelle von "v11.0" oder "v12.0" zu verwenden.

Die obige automatische Localdb-Instanz hat einen Standardnamen für die gesamte Version und vermeidet Konflikte zwischen dem Namen & Version.

Wichtig: Beachten Sie beim Aktualisieren der lokalen Datenbank auf die neue Version, dass die mit einer älteren Version erstellte Datenbank nicht mit der neueren Version funktioniert.

Verwandte Themen