database
에 연결하는 Console Application
(C#
)을 가지고 있으며 일부 전자 메일을 보냅니다. 사용자가 Visual Studio
에서 디버깅 할 때 정상적으로 실행되지만 서버에 복사하여 서비스 계정으로 실행하면 domain\AcctNotWorking
오류가 발생합니다. 예약 된 작업을 실행하는 계정을 내 domain\login
으로 전환하면 정상적으로 작동합니다. 서비스 계정이 NT AUTHORITY\ANONYMOUS LOGON
으로 로그인하려고하는 이유는 무엇입니까? domain\AcctNotWorking
은 서버의 관리자이며 적절한 사용 권한은 SQL Server
입니다.Entity Framework 작업 스케줄러를 통한 연결은 NTAuthority/Anonymous Logon으로 연결합니다.
System.Data.Entity.Core.EntityException : 기본 제공 업체 이 (가) 열기에 실패했습니다. ---> System.Data.SqlClient.SqlException : 데이터베이스 "MyDatabaseName"로그인 요청한 열 수 없습니다. 로그인에 실패했습니다. 'NT AUTHORITY \ ANONYMOUS LOGON'사용자가 로그인하지 못했습니다.
Connection String: add name="ApplicationEntities" connectionString="metadata=res://*/ApplicationEntities" .csdl|res://*/ApplicationEntities" .ssdl|res://*/ApplicationEntities" .msl;provider=System.Data.SqlClient;provider connection string="data source=SQL-Server-Name;initial catalog=DatabaseName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient"
그것은 그 사용하여 SQL 로그인 불구하고 언급해야 당신이 원하는 것을 필요는 없다 : 당신은 신속하고 더러운 SQL 로그인 방법으로 갈 경우
는 적어도, 연결 문자열을 암호화합니다. 도메인 계정을 사용하는 것이 유효한 옵션입니다. 그것은 단지 제대로 수행되어야합니다. – Tipx
다르지만 일반적으로 암호화 된 연결 문자열을 사용하는 등의 작업을 수행하는 것이 일반적입니다. https://msdn.microsoft.com/en-us/library/89211k9b(v=vs.110).aspx – Will
아, 옵션이 있습니다, 당신이 그것을하고 싶을 때가 있습니다. 나는해서는 안된다는 말은하지 않았다. 단지 좋은 옵션이 아닙니다. :-) – Tipx