programing

SQL 네트워크 인터페이스, 오류: 26 - 지정된 서버/인스턴스를 찾는 중 오류 발생

muds 2023. 8. 19. 10:55
반응형

SQL 네트워크 인터페이스, 오류: 26 - 지정된 서버/인스턴스를 찾는 중 오류 발생

글쎄요, 저는 며칠 동안 해결하려고 노력하고 있는 큰 문제가 있습니다. 하지만 저는 그것을 할 수 없었습니다. 그래서 저는 당신의 도움이 필요합니다.저는 asp.net 4.0에 사용자 정의 구성원 자격 및 역할 제공자를 구현하는 웹 애플리케이션을 가지고 있습니다.앱 홈페이지를 열면 데이터베이스에 연결되어 정보를 검색합니다.로그인 양식도 있으며 로그인할 때 데이터베이스를 통해 사용자를 확인하고 예약된 페이지로 리디렉션하지만 다음 오류가 나타납니다.

SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 오류 또는 인스턴스 관련 오류가 발생했습니다.서버를 찾을 수 없거나 서버에 액세스할 수 없습니다.인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되었는지 확인합니다.(제공자: SQL 네트워크 인터페이스, 오류: 26 - 서버/인스턴스 지정 오류)

설명:

현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다.오류에 대한 자세한 내용과 코드에서 발생한 오류에 대한 자세한 내용은 스택 추적을 검토하십시오.

예외 세부 정보:

시스템. 데이터.SqlClient.SqlException:SQL Server에 대한 연결을 설정하는 동안 네트워크 관련 오류 또는 인스턴스 관련 오류가 발생했습니다.서버를 찾을 수 없거나 서버에 액세스할 수 없습니다.인스턴스 이름이 올바르고 SQL Server가 원격 연결을 허용하도록 구성되었는지 확인합니다.(제공자: SQL 네트워크 인터페이스, 오류: 26 - 서버/인스턴스 지정 오류)

소스 오류:

현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다.예외의 출처 및 위치에 대한 정보는 아래의 예외 스택 추적을 사용하여 식별할 수 있습니다.

스택 오버플로에서 찾은 솔루션을 여러 가지 시도했지만 아무 것도 작동하지 않았습니다.다음은 내 연결 문자열입니다.

<connectionStrings>
  <clear/>
  <remove name="LocalSqlServer"/>
     <add name="LocalSqlServer" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient" />
     <add name="AgencyConn" connectionString="Data Source=MSSQL2008-1;Initial Catalog=agency;
        Integrated Security=False;User ID=adis_agency;Password=niarda2012;Connect Timeout=180;Encrypt=False;
        Packet Size=4096" providerName="System.Data.SqlClient"/>
</connectionStrings>

또한 다음은 membership 및 rolemanager web.config 섹션입니다.

<membership defaultProvider="AuthProvider">
  <providers>
    <clear/>
      <add name="AuthProvider" type="AuthenticationProvider" applicationName="~/Reserved/" connectionStringName="AgencyConn"/>
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
  <providers>
    <clear/>
      <add name="MyRoleProvider" type="RoleAccessProvider" connectionStringName="AgencyConn"/>
  </providers>
</roleManager>

누가 뭐가 잘못됐는지 알아내는데 도움을 줄 수 있습니까?

윈도우즈 시스템 A에서 윈도우즈 시스템 B(SQL Server가 설치된 서버)에 연결하는 경우 이 오류가 발생하면 다음을 수행해야 합니다.

시스템 B:

1.) "SQL Server Browser"라는 Windows 서비스를 켜고 서비스를 시작합니다.

2.) Windows 방화벽에서 수신 포트 UDP 1434를 사용하도록 설정합니다(A 시스템의 SQL Server Management Studio가 연결 중이거나 A 시스템의 프로그램이 연결 중인 경우).

3.) Windows 방화벽에서 수신 포트 TCP 1433을 사용하도록 설정합니다(텔넷 연결이 있는 경우).

4.) SQL Server Configuration Manager에서 포트 1433에 대해 TCP/IP 프로토콜 사용

enter image description here

저에게 문제는 DNS 기록이 잘못되었다는 것이었습니다.

다음은 매우 유용한 것으로 입증된 것으로, 이 블로그 게시물에서 대부분 발췌했습니다.

이 오류 메시지는 실제로 매우 구체적이며 솔루션은 매우 간단합니다.

SQL Server 명명된 인스턴스에 연결하려는 경우에만 이 오류 메시지가 표시됩니다.기본 인스턴스의 경우 이 단계에서 실패하더라도(예: 서버/인스턴스를 지정하는 동안 오류가 발생한 경우) Named Pipes에 대한 기본 TCP 포트 1433, 기본 파이프 이름 등의 기본값을 사용하여 연결을 계속 시도하기 때문에 이 메시지가 표시되지 않습니다.

클라이언트가 SQL Server 명명된 인스턴스에 연결할 때마다 SSRP UDP 패킷을 서버 시스템 UDP 포트 1434로 보냅니다.SQL 인스턴스의 구성 정보(예: 활성화된 프로토콜, TCP 포트, 파이프 이름)를 알려면 이 단계가 필요합니다.이 정보가 없으면 클라이언트는 연결 방법을 모르고 이 오류 메시지와 함께 실패합니다.

즉, 클라이언트 스택이 SQL Browser에서 SSRP 응답 UDP 패킷을 수신할 수 없기 때문에 이러한 오류 메시지가 표시됩니다.정확한 문제를 파악하려면 다음 단계를 수행합니다.

  1. 서버 이름이 올바른지 확인합니다(예: 이름에 오타 없음).

  2. 인스턴스 이름이 올바른지 확인하고 대상 시스템에 실제로 이러한 인스턴스가 있는지 확인합니다. (일부 응용 프로그램은 \를 \로 변환합니다.)

  3. 서버 컴퓨터에 연결할 수 있는지 확인합니다. 예를 들어 DNS를 올바르게 확인할 수 있고 서버를 ping할 수 있습니다(항상 true는 아님).

  4. 서버에서 SQL Browser 서비스가 실행 중인지 확인합니다.

  5. 서버에서 방화벽을 사용하도록 설정한 경우 sqlbrowser를 배치해야 합니다.exe 및/또는 UDP 포트 1434를 예외로 설정합니다.

1~4단계를 선택한 후에도 실패할 수 있는 코너 사례가 하나 있습니다.다음과 같은 경우에도 발생할 수 있습니다.

  1. 서버가 클러스터 또는 다중 홈 컴퓨터의 명명된 인스턴스입니다.
  2. 클라이언트가 방화벽이 설정된 Vista 컴퓨터입니다.

유용할 수 있는 도구는 PortQry입니다.이 명령이 정보를 반환하고 대상 인스턴스가 포함된 경우 위의 4) 및 5) 가능성을 배제할 수 있습니다. 즉, SQL Browser가 실행 중이고 방화벽이 SQL Browser UDP 패킷을 차단하지 않습니다.이 경우 잘못된 연결 문자열과 같은 다른 가능한 문제를 확인할 수 있습니다.

마지막으로 SNAC를 사용할 때 동일한 문제에 대한 오류 메시지는 [SQL Native Client]입니다.SQL 네트워크 인터페이스:지정된 서버/인스턴스 [xFFFFFF]를 찾는 중 오류가 발생했습니다.

Microsoft는 최근 SQL Server에 대한 연결 문제의 대부분을 해결하기 위한 원스톱 쇼핑 역할을 할 수 있는 안내 설명을 발표했습니다. SQL Server에 대한 연결 오류 해결

window+R로 이동하여 services.msc를 입력하고 Enter 키를 누릅니다.

그런 다음 자동으로 시작되지 않은 경우 수동으로 SQL 서버를 시작합니다.

그런 다음 로그인을 시도합니다.

저는 ASP에서도 같은 문제를 겪고 있었습니다.NET MVC 4 응용 프로그램.

내가 해결한 방법은,DatabaseContext기본 생성자를 통해 사용하고자 하는 연결 문자열의 이름을 전달합니다.

public class DatabaseContext : DbContext
{ 
    public DatabaseContext()
        : base("DefaultConnection") // <-- this is what i added.
    {
    }

    public DbSet<SomeModel> SomeModels { get; set; }
}

답은 오류 메시지 자체에 있습니다.

Error Locating Server/Instance Specified

기본적으로 연결 문자열에 잘못된 server\instance가 있습니다. 즉, 이 비트:

Data Source=MSSQL2008-1

서버를 가리키고 있지 않거나 서버 이름이 IP 주소로 확인되지 않습니다.(1) SQL Server를 실행하는 상자에서 SQL Browser Service가 실행되고 있지 않거나 (2) SQL 상자에서 Windows 방화벽(또는 일부 다른 방화벽)이 수신 연결을 거부하고 있습니다.

결국 서버 이름이 올바르면 네트워킹 문제로 이어지는데, 클라이언트가 서버에 연결할 수 없는 이유를 찾아야 합니다(SQL Server 구성 문제보다 기본 네트워킹 문제일 가능성이 높습니다).

SQL Server의 Developer Edition을 사용하는 경우 "를 변경합니다.컴퓨터 이름에 \SQLEXPRESS"를 연결 문자열로 입력합니다.

이전:

데이터 원본=.\SQLEXPRESS;초기 카탈로그=SchoolDB-EF6 코드퍼스트;통합 보안=True;MultipleActiveResultSets=True

이후:

데이터 원본=데스크톱-DKV41G2; 초기 카탈로그=SchoolDB-EF6 코드퍼스트;통합 보안=True;MultipleActiveResultSets=True

제 경우 web.config 파일에 있는 connectionString의 이름 철자가 잘못되었습니다.Entity Framework에서 사용하는 데이터베이스 컨텍스트의 이름입니다.이것은 EF가 connectionString 이름을 컨텍스트와 일치시킬 수 없을 때 발생하는 오류인 것 같습니다.

.\를 변경합니다.SQLEXPRESS, 그리고 당신의 SQL 익스프레스 이름만 추가하면 나에게 효과가 있습니다.

 <add name="BlogDbContext" connectionString="data source=your name here; initial catalog=CodeFirstDemo; integrated security=True" providerName="System.Data.SqlClient"/>

저도 같은 오류가 있었고 SQL Server Express 서비스를 시작했는데 작동했습니다.이게 도움이 되길 바랍니다.

최근에 같은 문제가 발생했습니다.코드가 machine.confg 파일에서 "LocalSqlServer"라는 이름의 연결 문자열을 찾고 있음을 발견했습니다.우리는 이 라인을 추가했고 잘 작동하고 있습니다.

저는 이 문제를 가지고 있었고, 그것을 고쳤습니다. 문제는 다음과 같습니다.

틀렸습니다:

<add key="aaa" value="server=[abc\SQL2K8];database=bbb;uid=ccc;password=ddd;" />

맞다

<add key="aaa" value="server=abc\SQL2K8;database=bbb;uid=ccc;password=ddd;" />

이 문제는 DNS가 호스트 이름을 확인하지 못해 발생합니다."컴퓨터 이름" 대신 IP 주소를 사용해 보십시오.

제 경우에는 서비스를 검색했습니다.그런 다음 "SQL Server(SQLEXPRESS)"라는 서비스를 찾았습니다.그런 다음 마우스 오른쪽 버튼을 클릭합니다.속성을 선택합니다.그런 다음 시작을 클릭합니다.이상입니다.문제를 해결했습니다.

큰 문제는 아닙니다. 서버 이름만 변경하면 서버 이름을 변경할 수 있습니다.

enter image description here

서버 이름을 찾는 방법

  1. 오픈런
  2. cmd'를 쓰다
  3. 콘솔 창에 "호스트 이름"을 기록합니다.

서버 이름이 표시됩니다.

감사해요.

이 문제는 제 ASP 중 하나에서 하루 정도 걸렸습니다.NET MVC 프로젝트는 다행히 운영 환경이 아닌 기계에 문제가 있었습니다. 따라서 web.config를 비교하고 제거하면 오류가 사라집니다.진정한 도전은 SQL Server 오류 26을 이 문제에 연결합니다.

같은 문제입니다.저의 경우 프로젝트를 "스타트업 프로젝트"로 설정하는 문제를 해결했습니다.

동일한 문제가 발생한 후 연결 문자열을 사용하지 않았습니다../요)DESKTOP-E53DUML 이것대 대신에./DESKTOP-E53DUML)

시스템에 SQL Server 버전이 2개 설치되어 있는 것으로 나타났습니다.
오래된 것을 제거하는 것은 제 쪽의 문제를 해결했습니다.

자세한 정보:
시작하는 동안 두 서비스의 서비스가 실행하려고 했습니다.
그리고 첫 번째로 적재된 것은 제대로 작동했고 두 번째 시작을 막고 있었습니다.
추신: 첫 번째 서버의 서비스를 중지하고 두 번째 서버를 수동으로 시작하는 것도 작동하지 않았습니다.

SQL Server 구성 관리자를 열고 SQL Server Services에서 SQL Server 상태가 마우스 오른쪽 버튼으로 클릭하고 시작을 클릭하여 중지된 경우 SQL Server 상태를 사용하도록 설정합니다.

언급URL : https://stackoverflow.com/questions/13754563/sql-network-interfaces-error-26-error-locating-server-instance-specified

반응형