0

서비스가 있습니다. (서비스에서 DatabaseContext를 만들 수 없습니다.

Foreign key 'FK_dbo.UserSession_dbo.User_UserId' references invalid table 'dbo.User'. Could not create constraint or index. See previous errors.

생성자 DatabaseContext :

에는 ReportJob에서
scheduler.Start(); 

IJobDetail job = JobBuilder.Create<ReportJob>() 
      .WithIdentity("reportJob", "reportGroup") 
      .Build(); 

ITrigger trigger = TriggerBuilder.Create() 
      .WithIdentity("reportTrigger", "reportGroup") 
      .StartNow() 
      .WithCronSchedule("0 * * ? * Fri") 
      .Build(); 

scheduler.ScheduleJob(job, trigger); 

나는 DatabaseContext

에 대한 액세스를 얻으려고이
var db = new DatabaseContext() 

내가 오류가 발생 GenerateReports에

var repository = new StoreReportRepository(); 
repository.GenerateReports(); 

이) :

public ObjectContext Context 
    { 
     get { 

      return (this as IObjectContextAdapter).ObjectContext; 
     } 
    } 

    public DatabaseContext() 
     : base("name=DatabaseContext") 
    { 
     this.Context.ContextOptions.LazyLoadingEnabled = true; 
    } 

내가 뭘 잘못 했니? 감사

PS의 UserSession.cs

public class UserSession 
{ 
    [Key] 
    public Guid Id { get; set; } 
    public Guid UserId { get; set; } 
    public DateTime Expiration { get; set; } 
} 
+0

잘못된 테이블'dbo.User'을보십시오. 이 테이블을 확인하십시오. 실제로 존재합니까? –

+0

@PeterSmith이 테이블이 있습니다. 및 메서드 GenerateReports 작동하지만 컨트롤러에서 실행할 경우에만 – Badfishmaan

+0

@ PeterSmith 그 이유는 asp.net 신원이 가능 한가요? – Badfishmaan

답변

1

나는 나를 위해 작동하는 솔루션을 발견했다. 문제는 Windows 서비스가 잘못된 계정에서 실행되었다는 것입니다. 그래서 새로운 db를 만듭니다. 나는 계정을 변경하고 모든 것이 작동합니다.

서비스에서 서비스 -> 마우스 오른쪽 버튼 클릭 -> 등록 정보 -> 로그온 탭 -> 계정 이름과 pwd를 입력하십시오. example

관련 문제