1

Entity Framework 4.1을 사용하여 ASP.Net MVC 3 웹 응용 프로그램을 개발 중입니다. 최근에 테스트 서버에 응용 프로그램을 업로드했고 ELMAH에서 제공 한 오류 전자 메일을 알게되었습니다.ASP.Net MVC 3 System.Data.SqlClient.SqlException 제한 시간이 만료되었습니다.

System.Data.SqlClient.SqlException 제한 시간이 만료되었습니다. 작업이 완료되기 전에 시간 초과 기간이 이거나 서버가 응답하지 않습니다.

다음은 제 코드입니다. 일의

컨트롤러

public ActionResult VerifyEmail(int uid, string vid) 
{ 
    var userList = _userService.VerifyEmail(uid,vid).ToList(); 
} 

서비스

public IList<User> VerifyEmail(int uid, string emailvcode) 
{ 
    return _uow.User.Get(u => u.userID == uid && u.emailVerificationCode == emailvcode).ToList(); 
} 

단위

public class UnitOfWork : IUnitOfWork, IDisposable 
{ 
     readonly LocumEntities _context = new LocumEntities(); 

     private GenericRepository<User> _user = null; 

     public IGenericRepository<User> User 
     { 
      get 
      { 
       if (_user == null) 
       { 
        _user = new GenericRepository<User>(_context); 
       } 
       return _user; 
      } 

     } 

    } 

일반 저장소

public IList<TEntity> Get(Expression<Func<TEntity, bool>> filter = null,Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,string includeProperties = "") 
{ 
    IQueryable<TEntity> query = dbSet; 

    if (filter != null) 
    { 
     query = query.Where(filter); 
    } 

    foreach (var includeProperty in includeProperties.Split 
     (new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) 
    { 
     query = query.Include(includeProperty); 
    } 

    if (orderBy != null) 
    { 
     return orderBy(query).ToList(); 
    } 
    else 
    { 
     return query.ToList(); 
    } 
} 

시간 초과 오류가 때때로 서비스 메서드 내에서 라인이 오류는 때마다 발생되지

return _uow.User.Get(u => u.userID == uid && u.emailVerificationCode == emailvcode).ToList(); 

을 실행하려고 할 때 일어나고, 가끔, 그러나, 이 쿼리가 사용자 목록 또는 NULL 목록을 반환하는 이유를 이해할 수 없습니다.

누구든지 내 코드에서 왜 이런 일이 벌어 질 수 있습니까?

이 문제가 발생하는 이유를 알 수 없으므로 어떤 의견이라도 고맙겠습니다.

감사합니다.

답변

0

연결 문자열에서 timeout 속성을 늘려보십시오. SQL Server 프로파일 러를 실행하여 쿼리에서 많은 양의 데이터가 반환 될 수 있으므로 쿼리에 대해 생성되는 SQL의 양을 확인하십시오.

관련 문제