Format ciągu inicjalizacyjnego poza specyfikacją, zaczynając od indeksu 0


Mam aplikację ASP.NET, która działa dobrze na moim lokalnym komputerze deweloperskim.
Kiedy uruchamiam tę aplikację online, wyświetla następujący błąd:

Format ciągu inicjalizacyjnego poza specyfikacją, zaczynając od indeksu 0

Dlaczego to się wyświetla i jak mogę to naprawić?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Sprawdź parametry połączenia. Jeśli potrzebujesz pomocy z tym sprawdzeniem

ciągi połączeń
http://www.connectionstrings.com/
które mają listę często używanych.
Powszechnie używane sznurki łączące to:

[b]
SQL Server 2012

[/b]>
standardowa ochrona
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

zaufane połączenie
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

Łączenie się z instancją
SQL Server

Składnia nazwy serwera/instancji używana w parametrze serwera jest taka sama dla wszystkich parametrów połączenia programu SQL Server.

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;


[b]
SQL Server 2005

[/b]>
standardowa ochrona
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

zaufane połączenie
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

Łączenie się z instancją
SQL Server

Składnia nazwy serwera/instancji używana w parametrze serwera jest taka sama dla wszystkich parametrów połączenia programu SQL Server.

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;


[b]
MySQL

[/b]>
Standard
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Wskazanie portu
TCP
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;


[b]
Oracle

[/b]>

Korzystanie z TNS

Data Source=TORCL;User Id=myUsername;Password=myPassword;

Korzystanie z zintegrowanych zabezpieczeń
Data Source=TORCL;Integrated Security=SSPI;

Korzystanie z ODP.NET bez tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To może komuś pomóc ...
Moje hasło zawierało średnik, więc napotkałem ten problem. Więc dodałem hasło w cudzysłowie. To był naprawdę głupi błąd.
Zmieniłem następujące:
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=pass;word" providerName="System.Data.SqlClient"/>

do
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='pass;word'" providerName="System.Data.SqlClient"/>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Ustaw projekt zawierający klasę
DbContext
jako projekt początkowy.
Otrzymałem ten błąd podczas wywoływania
enable-migrations
.
Nawet jeśli wybrałem prawidłowy
projekt domyślny
w
konsoli menedżera pakietów
, nadal przeglądałem plik web.config tego projektu początkowego, w którym brakowało parametrów połączenia.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Upewnij się, że parametry połączenia są w tym formacie:


serwer

= FOOSERVER; bazy danych = BLAH_DB; kredyt = fałsz; jak się połączyć timeout = 60; Zintegrowane zabezpieczenia = SSPI;

Jeśli w linii brakuje tagu
server
, metoda powróci z tym błędem.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem. Lokalnie strona działała dobrze, ale na lazurowym nie udało jej się z powyższym komunikatem.
okazuje się, że problem polegał na ustawieniu ciągu połączenia do ctora, na przykład:
public DatabaseContext() 
{
Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
}

nie zadziała, będzie:
public DatabaseContext() : base("db")
{
}

Uderz mnie..
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Sprawdź parametry połączenia, tak jakbym zapomniał dodać
services.AddDbContext & < dbsContext & > (options = & > options.UseSqlServer ("Default"));
Powoduje to wyświetlenie błędu i tutaj, kiedy dodam
Configuration.GetConnectionString
, rozwiązuje to problem
jak teraz jest połączenie:
services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));

działa dobrze (ten problem został rozwiązany dla .net core)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Link do pełnej ścieżki sp rozwiązał ten problem:
var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Rozwiązałem ten problem, zmieniając parametry połączenia w ustawieniach publikowania mojego interfejsu API sieci Web ASP.NET.
Sprawdź moją odpowiedź na ten post:

Jak naprawić błąd :: format ciągu inicjalizacyjnego nie pasuje do specyfikacji zaczynającej się od indeksu 0
https://coderoad.ru/9040266/
::
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam błąd. W moim przypadku stało się tak, ponieważ przegapiłem końcowy cudzysłów hasła w ciągu połączenia.
Zmienił się od teraz
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password" providerName="System.Data.SqlClient"/>

DO
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password'" providerName="System.Data.SqlClient"/>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Dzieje się tak również, gdy kopiujesz stronę internetową z jednego rozwiązania do drugiego, a następnie uruchamiasz rozwiązanie i stwierdzasz, że ma ono inną nazwę ciągu połączenia w konfiguracji sieci web. Następnie od czasu do czasu zmieniasz nazwę parametrów połączenia w panelu właściwości w trybie projektowania strony.
Lepiej jest po prostu zmienić to w części kodu, a nie w projekcie.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem i ostatecznie udało mi się go rozwiązać w ten sposób:
Problem polegał na zdefiniowaniu parametrów połączenia w moim pliku web.config.
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>

Powyższe działało dobrze lokalnie, ponieważ korzystałem z lokalnej bazy danych podczas zarządzania użytkownikami i rolami. Kiedy przeprowadziłem migrację mojej aplikacji do IIS, lokalna baza danych nie była już dostępna, a ponadto chciałbym używać mojej bazy danych w SQL Server. Więc zmieniam powyższe parametry połączenia na następujący odpowiednik bazy danych SQL Server:
<add name="DefaultConnection" connectionString="data source=MY_SQL_SERVER; Initial Catalog=MY_DATABASE_NAME; Persist Security Info=true; User Id=sa;Password=Mybl00dyPa$$" providerName="System.Data.SqlClient"/>

UWAGA: Załóżmy również, że zamierzasz użyć tego samego serwera SQL z lokalnego pudełka (na wypadek, gdybyś umieścił go w swoim lokalnym pliku web.config - co zrobiłem w moim przypadku).
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Mój problem polegał na tym, że dodałem kod rejestracji bazy danych do mojego konstruktora dla obiektu DB i wydawało się, że spowodowało to spustoszenie w moim profilu wdrażania Azure.
FYI - uprościłem ten przykład, w prawdziwym kodzie zostało to wyłączone w produkcji (ale nadal w kodzie)
public class MyDB : DbContext
{
public MyDB()
{
this.Database.Log = x => { Debug.WriteLine(x); };
}
}
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wystąpił błąd w parametrach połączenia „Database == PESitecore1_master”
<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem ten sam problem, gdy dowiedziałem się, że wdrożenie-IIS nie skonfigurowało poprawnie parametrów połączenia. były one „$ (ReplacableToken_devConnection-Web.config Connection String_0)” podczas przeglądania parametrów połączenia witryny w usługach IIS, a nie rzeczywiste parametry połączenia. Zaktualizowałem je tam i wszystko działało zgodnie z oczekiwaniami
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Usunąłem & amp; quot na końcu parametrów połączenia i zadziałało
Zamiast
App=EntityFramework&quot;

Używany
App=EntityFramework;


Ustaw DefaultConnection, jak pokazano poniżej
>
<add name="DefaultConnection" connectionString="data source=(local);initial catalog=NamSdb;persist security info=True;user id=sa;password=sa;MultipleActiveResultSets=True;App=EntityFramework;" providerName="System.Data.SqlClient"/>
Uwaga: connectionString nie obejmuje:

| x | informacje o metadanych: "metadata = res:// */"

| x | zakodowane cudzysłowy: „” ”
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Skopiowałem i wkleiłem konfigurację parametrów połączenia do mojego projektu testowego i zacząłem pracować z tym błędem. Parametry połączenia działały dobrze w moim projekcie WebAPI. Oto moja dawka.
var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"];
var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W moim przypadku mam podobny błąd:
Aplikacja zgłosiła nieobsługiwany wyjątek. System.ArgumentException: format łańcucha inicjującego nie jest zgodny ze specyfikacją zaczynającą się od indeksu 91.
Zmieniam parametry połączenia z:
Serwer =.; Baza danych = dbname; identyfikator użytkownika = myuserid; hasło = mojehasło "
do:
Serwer =.; Baza danych = dbname; identyfikator użytkownika = myuserid; hasło = 'mojehasło' "
i działa, dodałem pojedyncze cudzysłowy do hasła.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Mój problem nie polegał na tym, że podane przeze mnie parametry połączenia były nieprawidłowe lub że parametry połączenia w pliku app.config, którego używałem, były nieprawidłowe, ale że używałem niewłaściwego pliku app.config.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Czasami usługa Sql Server nie została uruchomiona. Może to prowadzić do błędu. Przejdź do usługi i uruchom Sql Server. To powinno zadziałać.
https://i.stack.imgur.com/Tm9fl.jpg
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Innym nieszczęsnym duchem korzystającym ze starszej aplikacji formularzy internetowych przy użyciu wbudowanego źródła sqldatasource oraz parametrów połączenia przechowywanych w pliku web.config może być ten błąd, jeśli uzyskasz dostęp do parametrów połączenia, takich jak & <% APSDataConnectionString% & >, ale nie
& <% $ ConnectionStrings: MyConnectionString% & >. Zdarzyło się to nam podczas aktualizacji .NET z 3.5 do 4.x.
<asp:DropDownList ID="ddl" runat="server" DataSourceID="SqlDataSource1"
DataTextField="value" DataValueField="id"></asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="select id, value from a_table">
</asp:SqlDataSource>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W moim przypadku problem polegał na tym, że na serwerze aplikacja korzystała z innego pliku appsettings.json.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Miałem też ten błąd i udało mi się go rozwiązać w następujący sposób:
Wcześniej napisałem parametry połączenia do appsettings.json w sekcji, którą utworzyłem (ConnectionsStrings (zwróć uwagę na dodatkowe „s”) i próbowałem połączyć się z moją bazą danych, co spowodowało błąd. Była to aplikacja ASP.NET CORE, więc chciałem się z nim połączyć za pomocą metody .GetConnectionString (więcej na ten temat

tutaj
https://www.youtube.com/watch?v=xMktEpPmadI). wygląda na to, że ta metoda niejawnie szuka parametrów połączenia w sekcji „ConnectionStrings”, które nie istniały. Kiedy zmieniłem/naprawiłem to na „ConnectionStrings”, działało zgodnie z oczekiwaniami.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jak wiem, ilekroć masz więcej niż 1 ciąg połączenia w swoim rozwiązaniu (Twój bieżący projekt, projekt, który jest uruchamiany, ...) możesz napotkać ten błąd
ten link może ci pomóc
popychać

przycisk
https://coderoad.ru/25161419/

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się