webentwicklung-frage-antwort-db.com.de

Fehlerbehebung :: Format der Initialisierungszeichenfolge entspricht nicht der Spezifikation ab Index 0 ::

Ich habe meine Website auf einem von Godaddy freigegebenen Host hochgeladen. Ich kann darauf zugreifen auf diese Datenbank von meinem Managementstudio aus. Ich kann nicht zugreifen diese Datenbank von meiner Site aus. Ich erhalte folgende Fehlermeldung:

Das Format der Initialisierungszeichenfolge entspricht nicht der Spezifikation ab Index 0.

Meine Verbindungszeichenfolge befindet sich in web.config und sieht folgendermaßen aus:

<connectionStrings>
    <add name="mcn" connectionString="Data Source=mydatabase.db.8706856.hostedresource.com; Initial Catalog=mydatabase; User ID=username; Password=xyz;" providerName="System.Data.SqlClient" />    
</connectionStrings>

Was verursacht diesen Fehler? Ich habe auch versucht, ...Data Source=(local);... zu schreiben

13
1110

Es kann hilfreich sein, die tatsächliche Verbindungszeichenfolge zu ermitteln. Zu Global.asax hinzufügen:

throw new Exception(ConfigurationManager.ConnectionStrings["mcn"].ConnectionString);

Wenn die tatsächliche Verbindungszeichenfolge $(ReplacableToken_mcn-Web.config Connection String_0) lautet, würde dies das Problem erklären.

17
Michael Liu

Ich hatte das gleiche Problem und fand heraus, dass meine Verbindungszeichenfolge ein zusätzliches Anführungszeichen in der Mitte der Verbindungszeichenfolge hatte.

5
dotNET

Ich habe ursprünglich den Verbindungszeichenfolgenwert (VB.NET) wie unten gezeigt aufgerufen, und der Fehler wurde angezeigt 

 Using connection As New SqlConnection("connectionStringName") 
  '// more code would go here...
 End Using

das Hinzufügen eines Verweises auf System.Configuration und das Aktualisieren meines Codes (siehe unten) war meine Lösung. Die Verbindungszeichenfolge war nicht das Problem, da andere Steuerelemente sie ohne Probleme verwendeten (SqlDataSource).

Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("connectionStringName").ConnectionString)
    '// more code would go here...
End Using
3

Ich hatte dies in VS2015 und meine Korrektur bestand darin, die erste Zeile in meiner WebConfig von zu ändern

<?xml version="1.0" encoding="utf-8"?>

zu

<?xml version="1.0"?>

Neugierig.

2
sobelito

Ich hatte das gleiche Problem beim Zugriff auf eine veröffentlichte ASP.NET-Web-API. In meinem Fall wurde mir klar, dass ich bei der Veröffentlichung der Web-API keine Verbindungszeichenfolge im Bereich Datenbanken angegeben hatte:

 After using the three dot button, the connection string will be displayed on the text field to the left

Also habe ich es mit dem Dreipunkt-Button generiert, und nach der Veröffentlichung hat es funktioniert.

Seltsam ist, dass ich lange Zeit ziemlich sicher bin, dass es in dieser Konfiguration keine Verbindungszeichenfolge gab, aber es funktionierte trotzdem. 

2
ndarriulat

Ein weiterer Fallstrick ist, dass connectionString sich manchmal auf den Namen der Verbindungszeichenfolge in app/web-config und manchmal auf die eigentliche Verbindungszeichenfolge bezieht und umgekehrt.

Sehr einfach zu reparieren, aber manchmal schwer zu erkennen.

1
Jonas Stensved

In meinem Fall waren der Semikolon und die doppelten Anführungszeichen im Kennwort für prod DB der Täter. Unser IT-Team verwendet ein Werkzeug zum Generieren von Passwörtern. Daher wurde eines mit Semikolon und Anführungszeichen erstellt

<add key="BusDatabaseConnectionString" value="Data Source=myserver;Initial Catalog=testdb;User Id=Listener;Password=BlaBla"';[]qrk/>

Habe das Passwort geändert und es hat funktioniert.

1
Manish

Für jeden, der möglicherweise durch diesen Thread stolpert, während er versucht, den gleichen Fehler zu beheben, der durch Ausführen von Enable-Migrations auftritt, ist die Wahrscheinlichkeit groß, dass keine der oben genannten Lösungen Ihnen hilft (ich habe sie alle ausprobiert).

Dieses Problem ist in Web-API 2 aufgetreten, nachdem Sie dies in der Konsole PM ausgeführt haben:

Enable-Migrations -EnableAutomaticMigrations -ConnectionString IdentityConnection -ConnectionProviderName System.Data.SqlClient -Force

Ich habe das Problem behoben, indem ich es geändert habe, um die ApplicationDbContext zu verwenden, die in IdentityModels erstellt wurde.

Enable-Migrations -ContextTypeName ApplicationDbContext -EnableAutomaticMigrations -Force

Das Interessante ist nicht nur, dass diese Verbindung dieselbe exakte Verbindungszeichenfolge referenziert, sondern der Konstruktor enthält Code, von dem 4castle sagte, dass es eine mögliche Korrektur war (d. H. Der throwIfV1Schema: false-Vorschlag).

Beachten Sie, dass der -Force-Parameter nur verwendet wird, weil die Configuration.cs-Datei bereits vorhanden ist.

0
Dave Conley

Mein Problem war, dass meine web.config-Datei einen Verweis auf eine gelöschte Entitätsmodellverbindung enthielt. Überprüfen Sie daher, ob keine Verbindungszeichenfolgen vorhanden sind. 

0
kravits88

Ich habe diese Ausnahmebedingung erhalten, die durch Hinzufügen von throwIfV1Schema: false zu meinem DbContext-Konstruktor behoben wurde:

public class AppDb : IdentityDbContext<User>
{
    public AppDb()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }
}
0
4castle

Wenn Sie EF und Publish Profiles verwenden, enthält Ihr Veröffentlichungsprofil möglicherweise einen leeren Eintrag für die Verbindungszeichenfolge. Ärgerlich aber durchaus möglich.

0
Mike Devenney

Keine der aufgeführten Lösungen in diesem Thread hat für mich funktioniert. Ich habe diese Fehlermeldung erhalten, nachdem ich einige Änderungen an den Verbindungszeichenfolgen der Datei web.config vorgenommen hatte. (Meine App stellt eine Verbindung zu mehreren Datenbanken her.) Ich untersuchte sorgfältig, welche Änderungen ich vorgenommen hatte, und bemerkte, dass ich den Tag oben auf meiner Liste entfernt hatte. Ich habe das Tag oben in meiner Liste der Verbindungszeichenfolgen wiederhergestellt, und das Problem wurde sofort behoben. Bei dieser Site, die den Fehler erhalten hat, handelt es sich um eine Anwendung, die sich unterhalb der Hauptsite befindet ( https://www.domain.org/MySite ). Das Problem wird möglicherweise nicht für alle behoben, aber das Problem wurde für mich gelöst. 

0
George McKee

Ein unerwünschtes einfaches Anführungszeichen war mein Problem .. Die Überprüfung der Verbindungszeichenfolge von der in der Fehlerzeichenfolge angegebenen Stelle des Indexes half mir, das Problem zu erkennen. 

0
Kirsten Greed

Meine Lösung war überraschend einfach und eine andere, die offensichtlich ist, wenn Sie erkennen, was Sie getan haben. Ich habe die Konfiguration mit .NET Core/Standard auf folgende Weise manuell erstellt:

var configurationBuilder = new ConfigurationBuilder();
var root = configurationBuilder.Build(); 

und hatte vergessen, die Datei appsettings.json einzuschließen, die meine Konfigurationseinstellungen enthielt

configurationBuilder.AddJsonFile("appsettings.json", false);

Nach dem Hinzufügen begannen alle wieder zu arbeiten.

0
The Senator

Ich hatte dieselbe Fehlermeldung in meiner Localhost-Entwicklung mit meinem Visual Studio. Beachten Sie, dass bei der Veröffentlichung mit Microsoft Release Management (MRM) alles funktioniert hat. Ich korrigierte meine Situation, indem ich den Ausgangswert, der eine MRM-Referenz war, änderte.

Mein App.config-Anfangswert war folgender:

  <connectionStrings>
    <add name="BDORA" connectionString="__token3__" />
  </connectionStrings>

Lokal konnte die Anwendungsausführung den token3-Verweis nicht auf seinen tatsächlichen Wert in Tokens.xml interpretieren. Damit es auf meinem localhost funktioniert, musste ich den Wert von token3 in Tokens.xml in die Datei App.config erzwingen.

0
Michael Fayad

Ich habe 1,5 Arbeitstage für diesen Fehler verschwendet, und am Ende löste ein Mitarbeiter das Problem, indem er User ID durch Uid und Passwort durch Pwd ersetzte. Die aktualisierte Verbindungszeichenfolge für .Net war für mich der Fehler

0
Maham Khan

Beim Versuch, die Anwendung zu starten, wurde die folgende Fehlermeldung angezeigt:

Das Format der Initialisierungszeichenfolge entspricht nicht der Spezifikation ab Index 57. 

Während meiner Recherche habe ich diesen Stack gefunden und konnte diesen Fehler beheben, indem ich die Web-Konfigurationsdatei anschaute und fand, dass im passowrd eine zusätzliche Zeichenfolge vorhanden war. Nachdem ich die Zeichenfolge entfernt hatte, konnte ich ohne Fehler auf die Website zugreifen.

0
user3320382