db 서버에 연결할 수없는 앱의 가능한 원인을 추적하려고합니다.서비스가 부팅시 시작될 때 데이터베이스 연결이 작동하지 않지만 수동으로 시작될 때 작동합니다.
데이터베이스 서비스를 시작할 때 데이터베이스에 연결하는 Windows 서비스가 있습니다. 이 서비스는 신뢰할 수있는 유선 네트워크 연결이있는 시스템에서 실행됩니다. 자동으로 시작되도록 자동 설치되므로 일반적으로 Windows가 시작될 때 시작되며 거의 모든 경우에 정상적으로 작동합니다.
그러나 한 대의 XP 컴퓨터 (제어 할 수 없음)를 사용하면 서비스가 시작될 때 서비스가 시작될 때 데이터베이스 연결이 실패합니다. 표준 예외가 발생합니다 : 사용자가 로그인이 꽤 이상한 인, 올바르게 데이터베이스에 연결 수동으로 서비스를 시작하면이 기계에
System.Data.SqlClient.SqlException: An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
. 그래서 윈도우 시작시 문제 중 하나입니다 같아요
네트워크가 연결되기 전에 서비스가 시작- 기계가 어떻게 DB 서버 이름 인 경우 (서버 이름을 해결하기 위해 DNS에 연결하기 전에 서비스 시작 ...
- 가 처음 나가는 연결을 다른
- 것을 방지 시스템에 정책/방화벽/등이있다)
을 해결 문제는 때 사용자 manuall 발생하지 않습니다 y가 서비스를 시작하므로 문제를 해결하기 위해 무언가가 발생 했어야합니다. 내 생각에 이것은 시작시 실행되지만 내 서비스가 시작될 때 완료되지 않은 프로세스이거나 사용자가 로그인 한 사실 (로그온 스크립트에있는 것) 일 수 있습니다.
컴퓨터에 직접 액세스 할 수 없으므로 문제가 무엇인지 파악하고 올바른지 식별하는 방법을 제안해야합니다. 반복적으로 진단 프로그램을 배포 할 수 없으므로 처음으로 철저히 조사해야합니다.
첫 번째 질문은 다음과 같습니다.이 상황을 초래할 수있는 데스크톱 정책, 네트워크 정책 또는 소프트웨어를 알고있는 사람이 있습니까? 두 번째 질문 : 정확히 무슨 일이 일어나고 있는지 진단하려면 어떻게해야합니까?
나는 또한 자동으로 시작하도록 설치되며 진행중인 것을 확인하고 다양한 정보를 기록하기 위해 다양한 조치를 취할 새로운 진단 서비스를 작성하려고합니다. 예 : IP 주소로 데이터베이스 서버가 (이 서버를 찾을 수 있는지 확인하기 위해)
- 실행 "에서 ipconfig/all을"(네트워크 연결이 있는지 확인합니다)
- 반복 다음 단계를 이름
- 확인 데이터베이스에 대한 SQL 연결을 만들
- 합니다 (HKLM 레지스트리 나중에 업데이트되는 경우) 서버 이름을 포함하는 HKLM 레지스트리 키에 의해 서버 (이 작업을 시작할 때 알아보십시오) 몇 초마다.
이 서비스를 설치하고 컴퓨터를 다시 시작한 다음 사용자가 로그인하면 진단 정보에 유용한 정보가 표시됩니다.하지만 누구나 더 좋은 생각이나 제안 사항이 있습니까?
적절한 권한을 가진 사용자 계정으로 실행되도록 서비스를 변경해 보았지만 문제가 해결되지 않았습니다. 수동으로 시작할 때 서비스가 제대로 작동하기 때문에 로컬 시스템 계정에는 db 서버에 연결하는 데 충분한 권한이 있습니다. 그래서 this question과 같지 않습니다.
업데이트 : 번거로운 컴퓨터는 Win XP를 실행 중입니다.
UPDATE : this article 오류 코드의 좋은 토론을 준다 (26)
에게 감사드립니다. 문제의 원인이 무엇인지 알아 냈습니까? – Rory
우리에게있어 문제는 서비스가 시작될 때 데이터베이스 서버가 준비 될 것이라고 보장 할 수 없다는 것입니다. 우리의 데이터베이스는 현지 일 수도 있고 아닐 수도 있지만 우리는 상관하지 않습니다. 우리가 데이터베이스와 대화 할 수 없다면 우리의 서비스가 작동하지 않는다는 것을 알았습니다. 그래서 우리는 할 수있을 때까지 기다렸습니다. – Daniel