0

응용 프로그램에 문제가 있습니다. 데이터베이스 (및 일부 웹 서비스)를 쿼리하고 JSON에서 정보를 반환하는 MVC 응용 프로그램이 있습니다. 내 로컬 컴퓨터에서 매력처럼 작동하지만 웹 서버에 업로드 할 때이 오류가 발생합니다.웹 서버에서 모델을 직렬화하는 중 오류가 발생했습니다.

" 'System.Data.Objects.DataClasses.RelationshipManager'에서 '_owner'값을 가져 오는 중 오류가 발생했습니다."

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.Configuration.LazyLoadingEnabled = false; 
     base.Configuration.ProxyCreationEnabled = false; 
    } 

그리고 아무 일도 발생하지 : 내가 함께 프록시와 게으른 로딩을 사용하지 않도록 노력

(당신은 http://canedroid.com/mvc/api/requests/getlastcheckins에 전체 오류 페이지를 볼 수 있습니다).

모델 : 컨트롤러

namespace CaneDroid.MVCApp.Models 
{ 
public class CaneDroidContext : DbContext,ICaneDroidDataSource 
{ 
    public CaneDroidContext() 
     : base("DefaultConnection") 
    { 

    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.Configuration.LazyLoadingEnabled = false; 
     base.Configuration.ProxyCreationEnabled = false; 
    } 

    public DbSet<Checkin> mdlCheckins { get; set; } 
    public DbSet<configAndroid> configAndroid { get; set; } 


    IQueryable<Checkin> ICaneDroidDataSource.Checkins 
    { 
     get { return mdlCheckins; } 
    } 
} 

public class Checkin 
{ 

    public Checkin() 
    { 
     visto = false; 
    } 

    [Key,DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public virtual int Id { get; set; } 
    [Required] 
    public virtual string fsqCheckinId { get; set; } 
    public virtual string text { get; set; } 
    public virtual string usrId { get; set; } 
    public virtual string usrFrstName { get; set; } 
    public virtual string usrLstName { get; set; } 
    public virtual string venueId { get; set; } 
    public virtual string venueName { get; set; } 
    public virtual string venueAddress { get; set; } 
    public virtual string venueCrossStreet { get; set; } 
    public virtual string venueLat { get; set; } 
    public virtual string venueLng { get; set; } 
    public virtual string venueCity { get; set; } 
    public virtual bool visto { get; set; } 
} 

public class configAndroid 
{ 
    [Key, DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] 
    public virtual int Id { get; set; } 
    public string key { get; set; } 
    public bool value { get; set; } 
} 

}

작업 :

public R getLastCheckins() 
    { 
     var responseJson = R.getLastCheckins(db); 
     return responseJson; 
    } 

public static R getLastCheckins(CaneDroidContext db) 
    { 
     var cache = db.mdlCheckins.OrderByDescending(q => q.Id).Take(10); 
     return new R(cache, null, null, null, null, null); 
    } 

나는 내가 할 수있는 다른 모르겠어요.

답변

1

Nevermind. 해결책을 찾았습니다. 문제는 컨텍스트 변수입니다.

private static CaneDroidContext db = new CaneDroidContext(); 

수정하여 정적으로 만들 때 모든 것이 정상적으로 작동하기 시작했습니다.

관련 문제