Frage

Ich arbeite an einer lokalen Maschine (ASP.NET MVC 4 -Anwendung), aber jetzt möchte ich den SQL -Server des Unternehmens verwenden, damit ich die Verbindungszeichenfolge ändern muss, um mich mit diesem Remote -Server zu verbinden.

Das Setup ist Folgendes:

  • Ich habe eine VPN -Verbindung, in der ich eine IP -Adresse verwende und die genaue IP nicht anzeigen kann. Sagen wir also: xxx.xxx.xxx.xxx
  • Ich habe Benutzername und Passwort, um eine Verbindung zu VPN - VPNUSERNAME/VPNPASSWORT herzustellen
  • Wenn ich benutze Microsoft SQL Server Management Studio Um eine Verbindung zum Remote -Server herzustellen Ich verwende dieselbe IP, mit der ich eine Verbindung zum VPN - xxx.xxx.xxx.xxx herstellen kann
  • Ich habe einen anderen Benutzernamen und ein anderes Passwort für den SQL -Server - SQLUSERNAME/SQLPASSWORD

Ich habe eine vorhandene Verbindungszeichenfolge, mit der ich eine Verbindung zum Server auf meinem PC herstellen kann. Ich dachte, es würde ausreichen, um nur die Parameter dort zu ändern wie so:

<add name="ProjectName.DAL.MyDbContext"
     providerName="System.Data.SqlClient"
     connectionString="Data Source=xxx.xxx.xxx.xxx;
     Initial Catalog=DatabaseName;Integrated Security=True;         
     MultipleActiveResultSets=True;
     user id=SQLUsername;password=SQLPassword;App=EntityFramework" />

Die Änderungen aus der Verbindungszeichenfolge, die mich mit meinem lokalen Server verbindet und verbindet, sind zwei:

  1. Data Source= xxx.xxx.xxx.xxx - Ich benutze die IP. Hier frage ich mich, ob die IP selbst ausreichend ist. Sollte ich es benutzen http://xxx.xxx.xxx.xxx Oder einfach IP ist in Ordnung?
  2. user id=SQLUsername;pasword=SQLPassword - Ich verwende den gleichen Benutzernamen und das gleiche Passwort wie in der Management studio Von wo aus ich erfolgreich mit dem Server entfernen kann, indem ich das bereitstellen kann xxx.xxx.xxx.xxx als Servername und Verwendung von SQLUSERNAME/SQLPASSWORD unter SQL Server Authentincation.

Um klar zu sein - unter dem Management Studio Ich habe keine Probleme, mit dem Remote -Server eine Verbindung herzustellen. Wenn ich jedoch die Verbindungszeichenfolge in das ändere, was ich oben in meinem gepostet habe HomeController Wo ich eine sehr einfache Logik habe, um zu überprüfen, ob der Anruf in die Datenbank ausgeführt wird:

private MyDbContext db = new MyDbContext();

        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View(db.Users.ToList());
        }

Ich bekomme 3 Ausnahmen:

  1. SQLEXception (0x80131904): Login fehlgeschlagen für Benutzer 'vpnusername' '
  2. ProviderincompatibleException: Der Anbieter hat keine ProviderManifestToken -Zeichenfolge zurückgegeben.
  3. ProviderincompatibleException: Bei der Erhöhung der Anbieterinformationen aus der Datenbank ist ein Fehler aufgetreten. Dies kann durch Entity -Framework unter Verwendung einer falschen Verbindungszeichenfolge verursacht werden.

Außerdem ist es meiner Meinung nach und wie die Ausnahme der Nummer 3 sagt, dass das Problem in der Art und Weise, wie ich die Verbindungszeichenfolge verwende Number 1 Ausnahme, die besagt, dass das Login fehlgeschlagen ist, aber nicht für meinen SQLUSERNAME, sondern für den VPNUSERNAME. Wie gesagt - ich verwende wirklich VPN -Verbindung und verwende dieselbe IP - xxx.xxx.xxx.xxx Um sowohl mit dem VPN als auch mit dem SQL -Server (von Management Studio) eine Verbindung herzustellen.

Irgendeine Idee, wie ich das beheben kann?

War es hilfreich?

Lösung

Entfernen Integrated Security=True Aus Ihrer Verbindungszeichenfolge, während Sie versuchen, eine Verbindung mit einem SQL Server -Benutzernamen/Kennwort herzustellen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top