Beim Vergleich eines SQLServer-Projekts in Visual Studio 2015 Update 2 mit einer Datenbank SQL Server 2012 wird beim Ändern der Richtung der Fehler "Ziel ist nicht verfügbar" oder "Quelle ist nicht verfügbar" angezeigt.
Vor ein paar Monaten hat es richtig funktioniert. Gibt es eine Problemumgehung? Ich konnte keine finden.
Antworten:
Ich habe festgestellt, dass die Verwendung von Benutzername @ Servername als Benutzername für die Verbindung das Problem behebt, wenn es mit Azure-Datenbanken auftritt. Ich hatte Verbindungen, die historisch funktioniert haben, ohne dass dies plötzlich aufhörte, und dann hat dies das Problem für mich behoben.
Wenn ich beispielsweise ein Login von mylogin verwende und eine Verbindung zu myserver.database.windows.net herstelle , wird das Problem "Quelle ist nicht verfügbar" nicht angezeigt , wenn ich stattdessen [email protected] als Benutzernamen verwende.
quelle
[email protected]
(ich habe endlose Eingabeaufforderungen zur Azure SQL-Firewall erhalten, obwohl meine Client-IP in Azure Portal aufgeführt ist). Als ich es aufusername@myserver
(ohnedatabase.windows.net
) änderte, funktionierte es wieder. Seltsam.Ich erhalte diesen Fehler in Visual Studio 2017, wenn ich die SQL Server-Authentifizierung verwende, aber das Kennwort nicht speichere. Ich habe diese Schritte mit Visual Studio 15.6.3 und SQL Server 12.0.5000.0 getestet
Behebung des Fehlers
Dies behebt das Problem, aber das Problem tritt beim nächsten Neustart von Visual Studio erneut auf.
Verhindern, dass der Fehler erneut auftritt
Fehler reproduzieren
Wenn Sie diesen Fehler beheben möchten, habe ich ihn folgendermaßen reproduziert.
quelle
Nachdem ich hier alles ausprobiert habe, hat das für mich funktioniert:
Schließen Sie die VS-Instanz.
Löschen Sie die gespeicherten Verbindungsschlüssel in
quelle
ConnectionMruList
Registrierungsschlüssel existiert nicht einmal. Weiß jemand, wohin es gebracht wurde?Die anderen Antworten funktionierten nicht für mich, da ich SQL Server direkt und nicht Azure verwendete. Nachdem ich jedoch die erweiterten Eigenschaften der Verbindungszeichenfolge überprüft hatte, stellte ich fest, dass die Authentifizierung auf "Nicht angegeben" gesetzt war und die Netzwerkbibliothek leer war.
Ich habe sie geändert und es hat wieder funktioniert. Ziemlich seltsam, da ich die Datenbank für die Verbindung auswählen konnte. Ich würde einfach keine Schemas vergleichen können, die die erwähnte Meldung "Quelle ist nicht verfügbar" enthalten.
quelle
Für mich war es das
\
Symbol am Ende der IP-Adresse des Servers in demserver name
Feld, das das Problem behoben hat. Sehr eigenartig.zB anstatt
10.10.10.10
ich schreibe10.10.10.10\
und es verbindet sich ok.Hinweis: Ich verwende Visual Studio 2017.
quelle
Ich habe gemischte Ergebnisse mit den anderen Antworten hier gehabt. Ich habe eine Vergleichsdatei zum Speichern verwendet, die ein anderer Entwickler zusammengestellt hat. Dies ist ein eigenständiger SQL Server und keine Azure-Datenbank. Der Vergleich würde manchmal funktionieren und nicht bei anderen (die Angabe des Ziels ist ein nicht verfügbarer Fehler). In meinem Fall verwendete der gespeicherte Vergleich nur den Servernamen und keinen vollqualifizierten Domänennamen. Als ich zu einem FQDN wechselte, funktionierte es für mich. Ich bin nicht sicher, ob das Problem erneut auftritt, dachte aber, ich würde diese Informationen hinzufügen, falls sie für andere nützlich sind.
quelle
Einige Lösungen auf dieser Seite haben zwar manchmal für mich funktioniert, aber nicht immer. Aber diese Methode, die ich beschreibe, funktioniert meistens für mich
Wenn Sie Ihren Servernamen angeben, geben Sie das Protokoll und den Port wie folgt an
Servername: TCP: Mein Servername, 1443
Mein Servername ist Azure BTW
quelle
Ich hatte diesen Fehler beim Öffnen einer zuvor gespeicherten .scmp-Datei, die beim ersten Erstellen erfolgreich funktionierte.
Das Problem wurde durch ein fehlendes Kennwort in der gespeicherten Verbindungszeichenfolge verursacht. Die Quelle verwendete eine integrierte Authentifizierung, daher beschwerte sich VS nicht darüber.
Das erneute Auswählen der Zielverbindung hat nicht geholfen, wahrscheinlich weil VS die zwischengespeicherte Verbindungszeichenfolge verwendet hat.
Ich habe das Problem gelöst, indem ich das
Password
Argument in die Verbindungszeichenfolge in der Datei eingefügt habe. Es gibt zwei Stellen, an denen die Zielverbindungszeichenfolge angegeben wird (XPaths unten gezeigt):/SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
/SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']
Nach diesen Änderungen habe ich die .scmp-Datei erneut geöffnet und der Vergleich wurde erfolgreich ausgeführt.
quelle
Ich habe die Visual Studio Professional-Version 2015 ausprobiert und habe dieses Problem zum Zeitpunkt des SQL-Datenvergleichs erhalten. Es hat bei mir funktioniert, wenn ich den Hostnamen anstelle der IP-Adresse der Datenbanken verwende. Hoffe, dies wird das Problem beheben.
quelle
Ein Prozess blockierte die Datenbank. Nach dem Ausführen eines Kill [Spid] funktionierte es wieder.
quelle
Das gleiche Problem tritt auf, wenn der Benutzer keine erforderlichen Berechtigungen zum Ausführen des Schema-Vergleichsvorgangs https://msdn.microsoft.com/en-us/library/jj889462(v=vs.103).aspx hat
quelle
Ich bezog mich über IP auf SQL Server und gab mir dieses Problem. Ich habe über den DNS-Namen darauf verwiesen und das Problem wurde gelöst!
Nicht sicher warum! Es hat jedoch so funktioniert :)
quelle
Ich kann es zum Laufen bringen, wenn ich mit der rechten Maustaste auf den Datenbanknamen im Fenster SQL Server Object Explorer klicke und dort Schema Compare auswähle. Wenn ich versuche, das Schema-Vergleichsfenster zu verwenden, das über das Menü Extras geöffnet wird, funktioniert es nie.
quelle
Ich hatte tatsächlich das gleiche Problem in VS Studio 2015. Da sich die Datenbank jedoch auf meinem PC befand, verwendete ich localhost anstelle des tatsächlichen Namens des Computers. Ich habe den Computerserver einfach wie im Vorschlag von Visual Studio selbst ausgewählt und es hat funktioniert.
quelle
Keine der hier gegebenen Antworten hat für mich funktioniert; Ich verwende SQL Server und Visual Studio 2017. Ich konnte einen Vergleich erzwingen, indem ich die IP-Adresse des Servers zu meiner Hosts-Datei hinzufügte und dann diesen Hostnamen im Verbindungsfeld verwendete.
quelle
In meinem Fall habe ich gerade meinen Computer neu gestartet und es hat gut funktioniert.
quelle