2009-10-16 5 views
0

Windows Server 2003에서 VSTS 2008 + .Net 3.5 + C# + SQL Server 2008 Enterprise를 사용하고 있습니다. 다음 연결 문자열을 사용 중이며 labtest1은 로컬 컴퓨터 이름이고 다음을 사용하여 로컬 컴퓨터에서 연결합니다. ADO.Net. 그런 다음 연결 오류로 인해 항상 실패합니다. 그러나 연결 문자열을 "labtest1"에서 "."로 변경하면 연결에 동일한 ADO.Net 클라이언트 코드와 관련된 문제가 없습니다. 어떤 아이디어가 잘못 되었나요? SQL 서버에 연결하는 동안 네트워크 관련 또는 인스턴스 관련 오류가 발생했습니다SQL Server 연결 문제

Data Source=labtest1;Initial Catalog=CustomerDB;Trusted_Connection=true;Asynchronous Processing=true 

여기에 내가 가진 자세한 오류 메시지,

System.Data.SqlClient.SqlException이다. 서버를 찾을 수 없거나 액세스 할 수 없습니다. 인스턴스 이름이 올 바르고 SQL Server가 원격 연결을 허용하도록 구성되어 있는지 확인하십시오. (공급자 : 명명 된 파이프 공급자, 오류 : 40 - SQL Server에 대한 연결을 열지 못했습니다.)

답변

1

Sql Server 구성 문제로 보입니다. Sql Server 네트워크 구성에서 프로토콜을 조정하려고 했습니까? 명명 된 파이프 또는 TCP/IP를 사용해야합니다.

+0

SQL Server 구성 관리자를 열면 의 5 개 항목이 있습니다. 1. SQL Server Services; 2. SQL Server 네트워크 구성 (32 비트). 3. SQL Native Client 10.0 구성 (32 비트); 4. SQL Server 네트워크 구성. 5. SQL Native Client 10.0 구성. 튜닝해야하는 것은 어느 것입니까? – George2

+0

자세한 오류 메시지, 어떤 아이디어가 잘못 되었습니까? – George2

+1

SQL Server 네트워크 구성에서 "프로토콜"노드를 찾을 수 있습니다.어떤 프로토콜을 사용할 수 있습니까? 명명 된 파이프 또는 tcp/ip를 활성화하십시오. –

1

"." 또는 "(로컬)"로 설정하면 PC의 기본 인스턴스에 연결됩니다. SQL Server는 인스턴스와 함께 설치되며,이 경우 연결 문자열의 인스턴스 이름을 "SERVER \ INSTANCE_NAME"형식으로 지정해야합니다.

는 SQL 관리 스튜디오에서 나는 (SQL 서버에 연결을 시도하는 기계에) 연결을 차단 ZoneAlarms와 이전에이 문제를 보았다

select @@servername 
+0

SSMS를 사용하여 "labtest1"에 연결 한 다음 select @@ servername을 실행하기 위해 새 쿼리 창을 열면 결과는 "LABTEST1"입니다. 아무것도 잘못된 것 같지 않니? 서버 이름은 대소 문자를 구분합니까? 더 이상 분석 할 아이디어가 있습니까? – George2

+0

자세한 오류 메시지, 잘못된 아이디어를 게시했습니다. – George2

+1

그래서 트릭을하는 것은 인스턴스가 아닙니다. tzup의 제안도 내 다음 단계가 될 것입니다. – invert

1

전체 서버 \ 인스턴스 이름을 보려면이 쿼리를 실행합니다. 나는이

+0

내 문제를 해결하기위한 귀하의 제안은 무엇입니까? – George2

+0

"ZoneAlarms"는 무엇을 의미합니까? – George2

+1

나는 이것의 2 가지 예를 보았다. 어제 봤던 예에서 중요한 Windows 업데이트가 발생했다면 ZoneAlarm을 다시 연결하여 다시 연결할 수 있도록해야했습니다. 방화벽이있는 경우 차단 목록을 확인할 것입니다. 희망이 도움이 – Dean

1

당신은 네트워크 설정에서 활성화 명명 된 파이프 네트워크 프로토콜이 있는가하는 데 도움이 방화벽 등

희망의 주위에이 지역을 조사 시간을 보낼 것인가? (SQL Server 구성 관리자 - SQL Server 2005의 경우 2008 년과 다를 수 있습니다.이 설정을 확인할 수 있어야합니다.)

+1

참조 SQL Server 2005의 경우 "SQL Server 노출 영역 구성" 원격 연결 "섹션은 로컬이 아닌 원격 연결을 허용하는 옵션입니다. – invert

+0

감사합니다. 사용할 수 없습니다. Named Pipe를 활성화하면 작동합니다. SQL Server가 명명 된 파이프를 사용하는 이유는 무엇입니까? TCP/IP를 사용해야한다고 생각하십니까? – George2

+0

안녕하세요 kB, Named Pipe가 사용 된 이유를 혼동합니다. TCP/IP를 사용해야한다고 생각하십니까? – George2

1

컴퓨터 이름 : ping labtest1로 ping을 시도하십시오. 서버를 찾지 못하면 도메인 이름으로 ping labtest1.mydomainname.com을 시도하십시오. 이 방법이 효과가 있다면 도메인 컨트롤러에 DSN 별칭을 추가하거나 수정하거나 컴퓨터에 다시 로그인하기 만하면됩니다.

+0

Ping이 작동합니다. SQL Server 구성 관리자에서 명명 된 파이프를 활성화 한 후에 작동합니다. SQL Server가 명명 된 파이프를 사용하는 이유는 무엇입니까? TCP/IP를 사용해야한다고 생각하십니까? 더 이상의 아이디어? – George2

1

다른 하나의 씬과 관련이 없을 수도 있지만 적어도 샘플로 제공된 문자열에는 보안 모델을 지정하지 않았습니다.

연결 문자열에 Integrated Security = True (해당 로컬 컴퓨터가 제공됨)가 표시됩니다.

관련이있을 수있는 또 다른 사항은 이미 언급했듯이 프로토콜인데 TCP/IP가 활성화되어 있는지 확인해야합니다.

+0

TCP/IP가 사용됩니다. 그러나 Named Pipe는 활성화되어 있지 않습니다. Named Pipe를 활성화하면 작동합니다. 하지만 Named Pipe가 TCP/IP 이외의 다른 용도로 사용되는 이유는 무엇입니까? – George2

+1

아마도 로컬 연결이기 때문에 - 솔직히 말해서 나는 다른 방향으로 실패 할 것으로 예상 했었습니다! – Murph

+0

로컬 연결이 항상 명명 된 파이프를 사용한다는 것을 의미합니까? 그렇다면 증명할 서류가 있습니까? – George2