[C#] 초기화 문자열의 형식이 인덱스 0에서 시작하는 사양을 준수하지 않습니다

로컬 개발 컴퓨터에서 잘 실행되는 ASP.Net 응용 프로그램이 있습니다.

이 응용 프로그램을 온라인으로 실행하면 다음 오류가 표시됩니다

초기화 문자열의 형식이 인덱스 0에서 시작하는 사양을 준수하지 않습니다



답변

연결 문자열을 확인하십시오. 도움이 필요하면 일반적으로 사용되는 목록이있는 Connection Strings를 확인하십시오 .

일반적으로 사용되는 연결 문자열 :

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;

tnsnames.ora없이 ODP.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 ConsoleI에서 right를 선택한 경우에도 Default project연결 문자열이없는 해당 시작 프로젝트의 web.config 파일을 계속보고있었습니다.


답변

연결 문자열이 다음 형식인지 확인하십시오.

서버 = FOOSERVER; 데이터베이스 = BLAH_DB; 풀링 = 거짓; 연결 시간 초과 = 60; 통합 보안 = SSPI;

문자열에 server태그 가 없으면 이 오류와 함께 메소드가 다시 리턴됩니다.


답변

나는 같은 문제가 있었다. 로컬로 사이트가 제대로 실행되었지만 하늘빛으로 인해 위의 메시지가 표시되지 않습니다.

문제는 다음과 같이 ctor에서 연결 문자열을 설정하는 것으로 나타났습니다.

    public DatabaseContext()
    {
        Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["db"].ConnectionString;
    }

작동하지 않습니다.

    public DatabaseContext() : base("db")
    {
    }

나를 때리는 ..


답변

추가하는 것을 잊어 버린 것처럼 연결 문자열을 확인하십시오. services.AddDbContext<dbsContext>(options => options.UseSqlServer("Default"));

오류가 발생하고 여기에 추가 Configuration.GetConnectionString하면 문제가 해결됩니다.

지금처럼 연결은 다음과 같습니다

services.AddDbContext<dbsContext>(options => options.UseSqlServer(Configuration.GetConnectionString("Default")));

잘 작동합니다 (이 문제는 .net 코어에서 해결되었습니다)


답변

전체 sp 경로를 참조하면이 문제가 해결되었습니다.

var command = new SqlCommand("DatabaseName.dbo.StoredProcedureName", conn)