2014-05-21 4 views
0

C#에서 하나의 Windows 서비스를 작성한 다음 installutil을 통해 설치합니다. 이제는 서비스를 시작하려고 할 때 "Service cannot be started. System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'Domain\MachineName$'.at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlIn...Windows 서비스에서 로그인하지 못했습니다.

테스트 중에 테스트했지만 확실하지 않은 애플리케이션은 잘 작동합니다.

도와주세요.

+0

서비스가 연결을 만들 수 없습니다. app.config 파일의 연결 문자열을 확인하십시오. –

+0

사용자 이름/비밀번호가 일치하지 않거나 서버 이름이 잘못되었습니다. 데이터베이스를 열고 (로컬)/(SQLExpress) 또는 모든 인스턴스를 사용하고 있는지 확인하고 연결 문자열 데이터 소스에 지정하십시오. – Sakthivel

답변

0

ServiceBase.OnStart 이벤트에서 SQL 인스턴스를 만들려고합니까? 그렇다면 app.config (설치된 폴더 경로에 windowservicename.config) 또는 코드를 통해 통과하는 연결 문자열을 확인해야합니다.

이 연결 문자열에서 Windows 로그인을 통해 인증합니다. 따라서 실행중인 윈도우 서비스 (윈도우 서비스 속성 - 보안에서 확인할 수 있음, 할당 된 사용자)를 확인해야합니다. 이 사용자는 SQL 데이터베이스에 액세스 할 수 있어야합니다.

http://www.connectionstrings.com/sql-server/

희망은 도움에서보세요!

0

아마 연결 문자열에서 언급 한 인스턴스 이름입니다.

서비스에서 사용중인 Windows 인증 \ SQL 인증을 사용하여 로그인하여 SQL Server를 엽니 다. 제공된 사용자 이름과 암호가 'Domain \ MachineName $'서버에서 작동하는지 확인하십시오.

OnStart 이벤트에서 db 연결을 만들고 있는데, 인스턴스 이름이나 사용자 이름/암호 조합이 올바르지 않아 서비스를 시작하지 못합니다.

기억해야 할 점이 있다면 컴퓨터를 재부팅 할 때 sql이 시작된 후에 서비스가 시작되는지 확인하십시오. 시스템 재부팅시 로그인 오류가 발생하지 않도록하십시오. 서비스를 "자동 - (지연)"으로 설정하십시오.

관련 문제