로컬에 명명 된 인스턴스를 설치 한 SQL Server 2014와 동일한 문제가있었습니다. (가) 사용하여 연결 FQDN\InstanceName
단지 내 사용하여 연결하는 동안, 실패 hostname\InstanceName
했다. 예를 들어 : 연결을 사용하여 연결 mycomputername\sql2014
했지만 사용 mycomputername.mydomain.org\sql2014
하지 않았습니다. DNS가 올바르게 해결되었고 SQL Configuration Manager 내에서 TCP / IP가 활성화되었고 Windows 방화벽 규칙이 추가 된 후 테스트를 위해 방화벽을 꺼서 아무것도 차단하지 않았지만 문제를 해결 한 것은 없었습니다.
마지막으로 SQL Server 에서 " SQL Server Browser "서비스 를 시작해야 했으며 연결 문제가 해결되었습니다.
SQL Server Browser 서비스가 실제로 SQL Server가 연결하는 데 도움이되었다는 것을 결코 알지 못했습니다. 나는 당신이 연결하기 위해 "더 많은 브라우즈"서버를 클릭했을 때 드롭 다운을 채우는 데 도움이되었다는 인상을 받았지만, 포트 번호가 명시 적으로 할당되지 않은 경우 클라이언트 요청을 올바른 포트 번호에 맞추는 데 실제로 도움이된다 웹 사이트 바인딩이 여러 웹 사이트를 호스팅하는 IIS 웹 서버에서 동일한 문제를 완화하는 데 도움이되는 방법).
이 연결 항목은 SQL Server Browser 서비스에 대한 힌트를 제공 한 것입니다. https://connect.microsoft.com/SQLServer/feedback/details/589901/unable-to-connect-on-localhost-using-fqdn-machine- 이름
- wstst05 \ sqlexpress를 서버 이름으로 사용하는 경우 클라이언트 코드는 시스템 이름과 인스턴스 이름을 구분하고 wstst05는 netbios 이름과 비교됩니다. 일치하는 데 아무런 문제가 없으며 연결은 로컬로 간주됩니다. 거기에서, 우리는 필요한 정보 검색 없이 아무 문제없이 SQL 브라우저 및 공유 메모리를 통해 SQL 인스턴스에 연결 연락을.
- wstst05.capatest.local \ sqlexpress를 사용하면 클라이언트 코드가 이름 (wstst05.capatest.local)과 netbios 이름 (wstst05)의 비교에 실패하고 연결 "원격"을 고려합니다. 이것은 의도적으로 설계된 것이며 향후 개선을 고려할 것입니다. 어쨌든, 연결 원격과 이름이 지정된 인스턴스라는 사실을 고려하여 클라이언트는 이름 확인에 SQLBrowser를 사용해야한다고 결정합니다. wstst05.capatest.local (UDP 포트 1434)에서 SQL 브라우저에 연결하려고 시도하고 해당 부분이 실패한 것 같습니다. 따라서 오류가 발생합니다.
TechNet의 "SQL Server Browser"서비스 이유 (강조 추가) : https://technet.microsoft.com/en-us/library/ms181087(v=sql.120).aspx
"SQL Server 브라우저 사용"섹션에서 :
SQL Server Browser 서비스가 실행되고 있지 않은 경우 올바른 포트 번호 또는 명명 된 파이프를 제공하면 여전히 SQL Server에 연결할 수 있습니다. 예를 들어 포트 1433에서 실행중인 경우 TCP / IP를 사용하여 SQL Server의 기본 인스턴스에 연결할 수 있습니다. 그러나 SQL Server Browser 서비스가 실행되고 있지 않으면 다음 연결이 작동하지 않습니다 .
- 모든 매개 변수 (예 : TCP / IP 포트 또는 명명 된 파이프)를 완전히 지정하지 않고 명명 된 인스턴스에 연결을 시도하는 구성 요소 .
- 나중에 다른 구성 요소가 다시 연결하는 데 사용할 수있는 서버 / 인스턴스 정보를 생성하거나 전달하는 모든 구성 요소
- 포트 번호 또는 파이프를 제공하지 않고 명명 된 인스턴스에 연결
- TCP / IP 포트 1433을 사용하지 않는 경우 명명 된 인스턴스 또는 기본 인스턴스에 대한 DAC
- OLAP 리디렉터 서비스
- SQL Server Management Studio, Enterprise Manager 또는 Query Analyzer에서 서버 열거
클라이언트 서버 시나리오에서 SQL Server를 사용하는 경우 (예 : 응용 프로그램이 네트워크를 통해 SQL Server에 액세스하는 경우 ) SQL Server Browser 서비스를 중지하거나 비활성화하면 각 인스턴스에 특정 포트 번호를 할당해야합니다. 항상 해당 포트 번호를 사용하도록 클라이언트 애플리케이션 코드를 작성하십시오. 이 방법에는 다음과 같은 문제가 있습니다 .
- 클라이언트 응용 프로그램 코드가 올바른 포트에 연결되도록 업데이트하고 유지 보수해야합니다.
- 각 인스턴스에 대해 선택한 포트가 서버의 다른 서비스 나 응용 프로그램에서 사용되어 SQL Server 인스턴스를 사용할 수 없게됩니다.
"SQL Server Browser의 작동 방식"섹션에있는 동일한 기사의 추가 정보 :
SQL Server 인스턴스 하나만 포트 또는 파이프를 사용할 수 있기 때문에SQL Server Express를 포함하여 명명 된 인스턴스에 다른 포트 번호와 파이프 이름이 할당됩니다. 기본적으로 명명 된 인스턴스와 SQL Server Express는 모두 동적 포트를 사용하도록 구성됩니다. 즉, 사용 가능한 포트는 SQL Server가 시작될 때 할당됩니다. 원하는 경우 특정 포트를 SQL Server 인스턴스에 할당 할 수 있습니다. 연결시 클라이언트는 특정 포트를 지정할 수 있습니다. 그러나 포트가 동적으로 할당되면 SQL Server가 다시 시작될 때마다 포트 번호가 변경 될 수 있으므로 클라이언트가 올바른 포트 번호를 알 수 없습니다. ... SQL Server 클라이언트가 SQL Server 리소스를 요청하면 클라이언트 네트워크 라이브러리는 포트 1434를 사용하여 서버에 UDP 메시지를 보냅니다. SQL Server Browser는 TCP / IP 포트 또는 요청 된 인스턴스의 명명 된 파이프로 응답합니다.