초기화 문자열의 형식이 인덱스 0에서 시작하는 규격과 맞지 않습니다.
ASP를 가지고 있습니다.내 지역 개발 기계에서 잘 실행되는 NET 애플리케이션.
이 응용 프로그램을 온라인으로 실행하면 다음 오류가 표시됩니다.
초기화 문자열의 형식이 인덱스 0에서 시작하는 규격과 맞지 않습니다.
이 문제가 발생하는 이유와 해결 방법은 무엇입니까?
연결 문자열을 확인합니다.도움말이 필요한 경우 일반적으로 사용되는 연결 문자열 목록을 확인합니다.
일반적으로 사용되는 연결 문자열:
SQL Server 2012
표준 보안
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
신뢰할 수 있는 연결
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
SQL Server 인스턴스에 대한 연결
서버 옵션에 사용되는 서버/인스턴스 이름 구문은 모든 SQL Server 연결 문자열에 대해 동일합니다.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;
SQL Server 2005
표준 보안
Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;
신뢰할 수 있는 연결
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
SQL Server 인스턴스에 대한 연결
서버 옵션에 사용되는 서버/인스턴스 이름 구문은 모든 SQL Server 연결 문자열에 대해 동일합니다.
Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;Password=myPassword;
MySQL
표준.
Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
TCP 포트 지정
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
오라클
TNS 사용
Data Source=TORCL;User Id=myUsername;Password=myPassword;
통합 보안 사용
Data Source=TORCL;Integrated Security=SSPI;
ODP 사용.tnsnames.ora가 없는 NET
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
누군가에게 도움이 될 수도 있습니다.제 비밀번호에 세미콜론이 포함되어 있어서 이 문제에 직면했습니다.그래서 따옴표에 암호를 추가했습니다.그것은 정말 어리석은 실수였습니다.
다음을 변경했습니다.
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password=pass;word" providerName="System.Data.SqlClient" />
로.
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='pass;word'" providerName="System.Data.SqlClient" />
다을포는프설정이 포함된 합니다.DbContext시작 프로젝트로 분류합니다.
전화하는 동안 이 오류가 발생했습니다.enable-migrations설령 그것이Package Manager Console 오쪽을선니다습했택을 했습니다.Default project연결 문자열이 없는 시작 프로젝트의 web.config 파일을 계속 보고 있었습니다.
하는 합니다.services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));
오류를 발생시키고 여기에 추가합니다.Configuration.GetConnectionString합니다.
지금처럼 연결은 다음과 같습니다.
services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));
잘 작동합니다(이 문제는 .net core에 대해 해결되었습니다).
연결 문자열의 형식은 다음과 같습니다.
server=FOOSERVER;데이터베이스=BLAH_DB;풀링=false;연결 시간 초과=60;통합 보안=SSPI;
이 ,server태그를 지정하면 메소드가 이 오류와 함께 반환됩니다.
저도 같은 문제가 있었습니다.로컬에서는 사이트가 정상적으로 실행되었지만 위의 메시지와 함께 실행되지 않습니다.
문제는 다음과 같이 CTR에서 연결 문자열을 설정하는 것이었습니다.
public DatabaseContext()
{
Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
}
작동하지 않습니다. 다음과 같습니다.
public DatabaseContext() : base("db")
{
}
정말 놀랍군요..
전체 sp 경로를 참조하여 이 문제를 해결했습니다.
var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)
연결 문자열 끝에서 ""를 제거했고 작동했습니다.
대신에
App=EntityFramework"
사용했다
App=EntityFramework;
아래와 같이 기본 연결 설정
<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" />
함: InconnectionString은 다음과 같습니다.
정보x| 파일: "metadata=res://*/"
따옴표 : x| " "
snetcore의 SQLite에서 이 문제가 발생했습니다.나는 썼습니다.
"DefaultSQLiteConnection": "MyBlog.db"
대신에
"DefaultSQLiteConnection": "Data Source = MyBlog.db"
ASP의 게시 설정에서 연결 문자열을 변경하여 해결했습니다.NET 웹 API.
이 게시물에서 내 답변 확인:오류를 해결하는 방법::초기화 문자열의 형식이 색인 0::부터 시작하는 규격과 맞지 않습니다.
저도 같은 오류가 있었습니다.제 경우, 연결 문자열에 암호에 대한 닫는 따옴표가 누락되었기 때문입니다.
이 항목에서 변경됨
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password" providerName="System.Data.SqlClient" />
로.
<add name="db" connectionString="server=local;database=dbanme;user id=dbuser;password='password'" providerName="System.Data.SqlClient" />
제 경우에도 비슷한 오류가 발생했습니다.
응용 프로그램에서 처리되지 않은 예외가 발생했습니다.시스템.논쟁예외:초기화 문자열의 형식이 색인 91로 시작하는 규격과 맞지 않습니다.
연결 문자열을 다음에서 변경합니다.
서버 =.; Database=dbname;사용자 ID=myuserid;Password=mypassword"
대상:
서버 =.; Database=dbname;사용자 ID=myuserid;Password='mypassword'"
암호에 작은 따옴표를 추가했습니다.
제 경우에는 연결 문자열의 인코딩에 문제가 있었습니다.
로컬에서는 문제 없이 작동했지만, 운영 환경에 설치할 때 이 오류가 발생했습니다.
내 애플리케이션은 양식을 사용하여 연결 문자열을 설정할 수 있으며 연결 문자열이 로컬에서 프로덕션으로 복사되었을 때 보이지 않는 문자가 도입되었으며 연결 문자열이 바이트 수준에서 시각적으로 동일하지는 않았습니다.
다음 단계를 수행하여 문제가 발생했는지 확인할 수 있습니다.
- 연결 문자열을 메모장++에 복사합니다.
- 코드화를 ANSI로 변경합니다.메뉴 인코딩 > ANSI에 인코딩합니다.
- 추가 문자가 포함되어 있는지 확인합니다.
이러한 문자가 포함된 경우 해당 문자를 삭제하고 연결 문자열을 다시 붙여넣습니다.
생성된 암호에는 AWS RDS에서 유효한 문자가 거의 포함되어 있지 않지만, 어떤 이유로 인해.NET 앱에서 처리할 수 없습니다.저에게 효과가 있었던 해결책은 " (백틱)과 같은 문자 없이 새 암호를 생성하는 것이었습니다.
내 경우엔, 그건...
index: 58
하지만 결국 발생한 것은 생성된 암호에 하나의 따옴표가 있다는 것입니다.SQL Server에서 이를 수락했지만 연결 문자열에서 구문 분석에 문제가 발생했습니다.이것이 누군가를 최소한 몇 분이라도 구하길 바랍니다. 왜냐하면 제가 무슨 일이 일어나고 있는지 깨닫기까지 1시간에서 2시간이 걸렸기 때문입니다. 환호합니다.
이것이 미래에 누군가에게 도움이 되기를 바랍니다.연결 문자열에 큰따옴표로 묶인 빈 값이 있습니다(예: 사용자 ID=").그래서 그것을 해결하기 위해 저는 이중 따옴표에서 벗어나야만 했습니다.
Dim ConString = "Data Source=MYSERVER;User ID="";Initial Catalog=Northwinds..."
ConString = ConString.Replace("""", """""")
이 문제는 한 솔루션에서 다른 솔루션으로 웹 페이지를 복사한 후 솔루션을 실행하여 웹 구성에서 다른 연결 문자열 이름을 가진 경우에도 발생합니다.그런 다음 페이지의 설계 보기에 있는 정보 패널에서 연결 문자열의 이름을 잘못 변경합니다.
디자인 대신 코드 부분에서 변경하는 것이 좋습니다.
제 문제는 DB 객체에 대한 데이터베이스 로깅 코드를 생성자에 추가한 것인데, 이로 인해 Azure 배포 프로파일이 엉망이 된 것 같습니다.
참고로, 저는 이 예를 단순화했습니다. 실제 코드에서 이는 운영 중에 비활성화되었습니다(그러나 여전히 코드에 있음).
public class MyDB : DbContext
{
public MyDB()
{
this.Database.Log = x => { Debug.WriteLine(x); };
}
}
연결 문자열 "Database=="에 오타가 있었습니다.PESitecore1_master"
<add name="master" connectionString="user id=sa;password=xxxxx;Data Source=APR9038KBD\SQL2014;Database==PESitecore1_master"/>
저도 같은 문제를 겪었고 마침내 다음과 같은 방법으로 해결할 수 있었습니다.
문제는 내 웹.config의 연결 문자열 정의에 있습니다.
<add name="DefaultConnection" connectionString="DefaultConnection_ConnectionString" providerName="System.Data.SqlClient"/>
사용자 및 역할을 관리할 때 로컬 데이터베이스를 사용했기 때문에 위의 작업은 로컬에서 완벽하게 수행되었습니다.응용프로그램을 IIS로 전송했을 때 로컬 DB에 더 이상 액세스할 수 없었습니다. 또한 SQL Server에서 DB를 사용하고 싶습니다.따라서 위의 연결 문자열을 다음과 같이 변경합니다.
<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"/>
참고: 또한 위의 내용은 로컬 상자에서 동일한 SQL Server를 사용한다고 가정합니다(로컬 web.config에 통합하는 경우 - 제 경우 정확히 그렇게 했습니다).
저도 같은 문제가 있었습니다. IIS에 배포할 때 연결 문자열이 올바르게 설정되지 않았다는 것을 알게 되었습니다.$(교체 가능)였습니다.IIS에서 사이트의 연결 문자열을 볼 때 실제 연결 문자열이 아닌 Token_devConnection-Web.configConnectionString_0)'입니다.나는 그곳에서 그것들을 업데이트했고, 모두 예상대로 작동했습니다.
연결 문자열 구성을 복사하여 테스트 프로젝트에 붙여넣고 이 오류가 발생하기 시작했습니다.연결 문자열은 제 웹 API 프로젝트에서 잘 작동했습니다.이것이 제 해결책입니다.
var connection = ConfigurationManager.ConnectionStrings["MyConnectionString"];
var unitOfWork = new UnitOfWork(new SqlConnection(connection.ConnectionString));
제 문제는 제가 제공하는 연결 문자열이 잘못되었다는 것이 아니라, 제가 사용하고 있다고 생각했던 app.config의 연결 문자열이 잘못되었다는 것입니다.
web.config에 저장된 연결 문자열과 함께 인라인 sqd 데이터 소스를 사용하는 기존 웹폼 애플리케이션을 관리하는 또 다른 불행한 영혼의 경우, <%$ ConnectionStrings:> 대신 <%APSDataConnectionString%>와 같은 연결 문자열에 액세스하면 이 오류가 발생할 수 있습니다.내 연결 문자열 %>이것은 업그레이드할 때 우리에게 발생했습니다.NET 3.5 ~ 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>
저의 경우, 서버에서 다른 appsettings.json 파일이 애플리케이션에 의해 사용되었다는 것이 문제였습니다.
저도 이 오류가 있었고 다음과 같이 해결할 수 있었습니다.저는 이전에 appsettings.json에 대한 연결 문자열을 제가 만든 섹션에 작성했습니다(ConnectionsStrings(추가 "s"에 주목). 그리고 오류가 발생한 데이터베이스에 연결하려고 했습니다.ASP였습니다.NET CORE 응용 프로그램을 사용하여 연결하려고 했습니다.GetConnectionString 메서드(자세한 내용은 여기 참조).이 메서드는 존재하지 않는 "연결 문자열" 섹션에서 연결 문자열을 암시적으로 검색하는 것 같습니다.제가 "연결 문자열"로 변경/수정했을 때 예상대로 작동했습니다.
저는 하루 종일 똑같은 문제를 겪었습니다.이 오류는 인덱스 0이 연결 문자열이므로 연결 문자열 문제가 확실히 발생했음을 참조하십시오.나의 이슈는 스타트업 수업에 있었습니다.사용:
var connection = Configuration["ConnectionStrings:DefaultConnection"];
services.AddControllersWithViews();
services.AddApplicationInsightsTelemetry();
services.AddDbContextPool<Models.PicTickContext>(options => options.UseSqlServer("connection"));`
잘못된 대신 다음을 사용합니다.
services.AddControllersWithViews();
services.AddApplicationInsightsTelemetry();
services.AddDbContextPool<Models.PicTickContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
그리고 내 문제는 해결되었습니다.
이 오류가 발생했는데 원인이 Using/End Using으로 (새) 테이블 어댑터를 둘러쌌기 때문인 것으로 밝혀졌습니다.테이블 어댑터를 변경하여 더 오래 사용할 수 있도록 했습니다(이 경우 수업 시간).아마도 이것은 누군가를 도울 것입니다.
SQL Server 서비스가 시작되지 않은 경우도 있습니다.그러면 오류가 발생할 수 있습니다.서비스로 이동하여 SQL 서버를 시작합니다.이렇게 하면 됩니다.
솔루션에 연결 문자열이 하나 이상 있을 때마다(현재 프로젝트, 시작 프로젝트 등) 이 오류가 발생할 수 있습니다.
이 링크는 다음을 클릭하는 데 도움이 될 수 있습니다.
언급URL : https://stackoverflow.com/questions/8243008/format-of-the-initialization-string-does-not-conform-to-specification-starting-a
'code' 카테고리의 다른 글
| 어셈블리 '마이크로소프트'.SqlServer.유형의 버전 10 이상을 찾을 수 없습니다. (0) | 2023.05.03 |
|---|---|
| 루프가 종료된 후 변수를 루프하고 보존하는 동안 Bash에 입력을 파이프로 연결하는 방법 (0) | 2023.05.03 |
| Python 3은 값을 기준으로 딕트를 정렬합니다. (0) | 2023.05.03 |
| Azure 앱 서비스를 64비트로 변경하는 방법 (0) | 2023.05.03 |
| Xcode 4 - 콘솔/로그 창 분리 (0) | 2023.05.03 |