문제

컴퓨터에 배포 된 WCF 서비스가 있습니다. 이 WCF 서비스는 SQL Server 또는 SQL Server Express로 구성 할 수 있습니다.

노트 : SQL 데이터베이스 위치는 WCF 서비스가 배포되는 다른 시스템 일 수 있습니다.

다음 정보를 XML 파일에 넣었습니다.

  1. 사용자 ID
  2. 비밀번호
  3. 서버 이름
  4. machineName

SQL Server Express의 경우

그만큼 서버 이름 속성은 "sqlexpress"입니다. 내부적으로 나는 machineName을 사용하여 ServerName을 추가하여 ServerName이 다음과 같습니다.

machinename sqlexpress

연결 문자열로 전달됩니다.

SQL Server의 경우

내가 지나갈 때 서버 이름 SQL Server에게는 예외가 발생합니다.

최선의 접근 방식을 위해 저를 안내 해주세요 !!

도움이 되었습니까?

해결책

예외는 무엇입니까? 또한 ServerName과 MachineName의 차이가 무엇인지 잘 모르겠습니다. 어쩌면 ServerName과 InstanceName을 의미했을까요? 이 방법으로 문자열을 구성해야합니다 (의사 코드, 어떤 언어를 사용하고 있는지 전혀 모릅니다) :

DataSource = ServerName
If (InstanceName != "")
    DataSource += "\" + InstanceName

다른 팁

동일한 연결 문자열 형식을 사용하여 SQL Server Express 및 Full Edition에 연결할 수 있습니다.

기본 설치를 위해 적절한 문자열을 사용하고 있는지 확인하십시오.

Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

그리고 전체 SQL 서버의 경우

Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;

가장 큰 이유는 MSSQLServer 인스턴스가 명명 된 인스턴스가 아닌 기본 인스턴스에서 실행되기 때문입니다 (이것은 SQL Express가하는 일입니다). 주변의 작업은 연결 문자열을 환경에 따라 보유하는 로컬 속성 파일을 구성하는 것입니다. 그런 다음 구성 파일 자체에 파일을 참조하거나 빌드 프로세스의 일부에 정보를 구성 파일에 통합하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top