2014-12-28 2 views
0

EF 6 (코드 우선)과 함께 ASP.NET 웹 API를 사용하고 있으며 개발 목적으로 DropCreateDatabaseAlways로 이니셜 라이저를 만들었습니다.일부 비활성 후 데이터베이스가 Eff Drop

원격 서버 (IIS 8.0)에 응용 프로그램을 배포하고 일부 비 활동 후에 API에서 호출 할 때 이니셜 라이저가 호출됨을 확인했습니다. 이 이니셜 라이저는 응용 프로그램이 실행될 때마다 데이터베이스를 삭제하고 생성하지만 일단 배포되면 응용 프로그램이 실행을 멈추지 않으므로 시간 제한이 있습니까?

아이디어가있는 이유는 무엇입니까?

다음은 도움이되는 몇 가지 코드 및 로그입니다. 문맥 :

public MyDAL() 
     : base("MyEntities") 
    { 
     Database.SetInitializer<MyDAL>(new MyInitializer()); 
     this.Database.Log = s => log.Info(s); 
    } 

일부 로그 :

요청이 데이터베이스 2014년 12월 28일 05 생성/떨어 뜨릴없이 성공 // 05:30

: 30 : 38,312 INFO를 - - 실행 00

2014년 12월 28일 : 05 : 30 : 28/12/2014 5시 30분 38초 01에서 38,343 INFO - - 결과 27 밀리 완료 : SqlDataReader를

2014년 12월 28일 05 : 30 : 38,343 정보 -

2014년 12월 28일 05 : 30 : 38,343 INFO - 28/12/2014 5시 30분 38초 +01 폐쇄 연결 : 00 클라이언트가 인증 서비스 2014 묻는 // 6시 46분에서

-12-28 06 : 46 : 15,398 정보 - 2014-12-28 06 : 46 : 21,070 정보 - 2014 년 12 월 12 일 06:46:21 +01 : 00

2014-12-28 06 : 46 : 21,132 INFO - 28/12/2014 6시 46분 21초 01에서 시작 트랜잭션 00

2014년 12월 28일 06 : 46 : 21,132 INFO - CREATE TABLE [dbo가] ...

+0

아마도이 http://romiller.com/2014/06/10/reducing-code-first-database-chatter/ – ErikEJ

+0

IIS 응용 프로그램을 관리하고 있습니까? 아니면 공유 서비스를 실행하고 있습니까? IIS 응용 프로그램 풀은 기본적으로 재활용 설정이 29 시간 (사용하는 버전에 따라 다름)으로 제공됩니다. 이것은 서버가 불안정해질 수있는 끔찍한 메모리 누수가있는 웹 애플리케이션을 피하기위한 것입니다. – rodrigogq

+0

@rodrigogq IIS 응용 프로그램을 관리하고 있습니다. 내 응용 프로그램 풀에서 유휴 시간 제한 (이전 20 분)이 증가했으며 현재는 작동하는 것 같습니다. Idle time-out이 문제라면 더 많은 테스트를 기다리고 있습니다. – boluo

답변

0

그래서, t 문제는 IIS의 응용 프로그램 풀 구성에있었습니다. Idle time-out은 20 분 전에 설정되었고 24 시간으로 설정되어 문제가 사라졌습니다.

관련 문제