2014-10-22 2 views
3

Hangfire에서 무슨 일이 일어나는지 확실하지 않지만 BackgroundJob.Enqueue()를 호출하면 데이터베이스에 작업이 "예약 됨"으로 추가되지만 아무 일도 일어나지 않습니다. 메서드 코드가 실행되지 않는 것처럼 보입니다. 디버거에서 중단 점이 발생하지 않고 작업 내 로그에서 아무것도 인쇄되지 않습니다.데이터베이스에 있지만 Hangfire가 작업을 실행하지 않습니다.

JobStorage.Current = new SqlServerStorage("DefaultConnection"); 
+0

나는 그것이 사소한 것처럼 들릴지도 모른다는 것을 알고 있지만 비슷한 문제가 있습니다. 제 경우에는 문제가 내 의존성 주입이 제대로 연결되어 있지 않은 것입니다. Hangfire Dashboard -> Scheduled Jobs에 가서 세부 정보를보기 위해 내 작업을 클릭 한 후에 정확한 예외 메시지 즉 ''some_interface '인터페이스를 만들 수 없습니다.'라는 메시지가 나타납니다. 작업이 제대로 초기화되었는지 확인하고 Hangfire Dashboard의 '예약 된'부분에 오류가 나타나지 않는지 확인하십시오. – Jerry

답변

3

나는 비슷한 문제가있었습니다. 제 경우에는 문제가 내 의존성 주입이 제대로 연결되어 있지 않은 것입니다.

Hangfire Dashboard -> Scheduled Jobs에 가서 세부 정보를보기 위해 클릭 한 후에는 정확한 예외 메시지 즉 '인터페이스'some_interface '를 만들지 못했습니다. "라는 메시지가 나타납니다.

작업이 제대로 초기화되었고 Hangfire 대시 보드의 '예약 된'부분에 오류가 없는지 확인하십시오.

+0

DI 용으로 무엇을 사용 했습니까? 우리는 StructureMap과 동일한 문제를 겪고 있으며 어떻게 수정했는지 궁금합니다. – JoshReedSchramm

+0

Ninject를 사용하고있었습니다. 근본적인 문제는 해결하지 못했지만 응용 프로그램의 구조는 약간 변경되었습니다. 이제는 hangfire를 사용하여 WCF 서비스 내에서 DI를 유선으로 연결하는 작업을 호출합니다. – Jerry

+0

이것은 데이터베이스 오류 (문자열이 잘 리게 됨) 인 내 문제점을 찾는 데 도움이되었습니다. 그 일이 왜 실패한 양동이에 들어가는 지 모르겠습니다. –

관련 문제