1

Ich habe eine ASP.Net-Webanwendung (. Net Framework) mit MVC-Vorlage erstellt und EF 6 neueste stabile Build installiert. Erstellt eine Modell- und eine Context-Klasse.ASP.Net Core-Webanwendung (. Net Framework) Probleme EF-Code Erste Annäherung

public class IAMContext: DbContext 
{ 
    public DbSet<Blog> Blogs { get; set; } 
} 
public class Blog 
{ 
    public int BlogId { get; set; } 
    public string Name { get; set; } 
} 

unter Code in Controller-Index-Methode setzen, bevor sie einen Blick

using (var db = new BasicTemplates.Models.IAMContext()) 
     { 
      db.Blogs.Add(new BasicTemplates.Models.Blog{ Name = "Another ` Blog " }); 
      db.SaveChanges(); 
     } 

schließlich Verbindungszeichenfolge in Web.config

, ein schafft Dies funktioniert
<connectionStrings> 
<add name="IAMContext" 
connectionString="Data Source=***\SQL2016;Initial Catalog=IAM;Integrated Security=true;" 
providerName="System.Data.SqlClient"/> 

zurück Tabelle namens Blog in der IAM DB. Wenn ich versuche, dasselbe in ASP.Net Core Webanwendung (.NET Framework) Web API-Projekt zu tun, funktioniert es nicht. Hier habe ich die Verbindungszeichenfolge in appsettings.json angegeben. Der Rest des Codes ist gleich.

"ConnectionStrings": { 
    "IAMContext": "Server=192.168.0.3\\SQL2016;Database=IAM;Trusted_Connection=True;" 
} 

Nach Ausführung es wirft die sagt einen Fehler ist

Eine netzwerkbezogene oder instanzspezifischen Fehler beim Herstellen einer Verbindung zu SQL Server. 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 zugelassen werden. (Anbieter: SQL Network Interfaces, Fehler: 26 - Fehler Locating Server/Instanz angegeben)

Dank

+0

Es kann die Datenbank unter dieser Adresse nicht finden. Versuchen Sie, die Datenquelle in der Datei web.config durch den Server in Adresse in Appsettings zu ersetzen, und sehen Sie, ob Sie den gleichen Fehler erhalten. – garethb

+0

haben Sie versucht, 'Integrated Security = true' in der Verbindungszeichenfolge oder einen bestimmten Benutzernamen und ein Passwort einzugeben? – Developer

+0

Funktioniert nicht sowohl für die Bereitstellung der Datenbankadresse als auch für die Einstellung Integrated Security = true. – DayaBM

Antwort

0
"ConnectionStrings": { 
"IAMContext":  "Server=192.168.0.3\\SQL2016;Database=IAM;Trusted_Connection=True;" 

Es sieht aus wie die Erlaubnis issue.Try geben Benutzername und Passwort in Verbindungszeichenfolge wie

"ConnectionStrings": { 
"IAMContext": "Server=192.168.0.3\\SQL2016;Database=IAM; 
User=youruser; pass=yourpass; Trusted_Connection=False;" 

BTW ist 192.168.0.3 ist Ihre lokale Maschine? Um zu prüfen, ob es sich um ein Berechtigungsproblem handelt, öffnen Sie SSMS und versuchen Sie, eine Verbindung zu Ihrer Datenbank herzustellen, indem Sie die genaue Konfiguration angeben, die Sie in Ihrer Verbindungszeichenfolge verwendet haben.

+0

Es ist kein Berechtigungsproblem, ich bin in der Lage, eine Verbindung zu db herzustellen, indem ich die IP-Adresse und den Namen in SSMS gebe. Es funktionierte nicht, indem Benutzername, Passwort und die Einstellung trusted_connection auf False gesetzt wurde. Immer noch derselbe Fehler. – DayaBM

0

Nach vielen Suchen habe ich erfahren, dass ASP.Net Core-Projekte EF nicht unterstützen. Sie sollen Entity Framework Core https://docs.microsoft.com/en-us/ef/core/index verwenden.

+0

Hier ist ein [Verweis] (https://docs.microsoft.com/en-us/aspnet/core/data/entity-framework-6) zum Erstellen der EF6-Klasse lib für ASP.NET-Kernprojekt. –

Verwandte Themen