2012-07-10 9 views
-1

중간 신뢰로 프로젝트를 실행할 때마다 계속이 예외가 발생합니다. 이 프로젝트는 MVC 포럼으로 중간 규모의 트러스트에서 내 사이트를 운영 할 필요는 없지만 중간 규모의 트러스트 환경에서 작동하도록하는 것이 좋습니다.보통 트러스트, ninject 및 엔티티 프레임 워크가있는 보안 예외

DI (중간 신뢰에서 작동하는 DLL)에 Ninject를 사용하고 있습니다. MVC 컨트롤러가 생성자 주입과 함께 예상대로로드됩니다.

"재미있는 것"은 (내 코드에서) 실패한 메소드가 2 개의 인수를 사용한다는 것입니다. 둘 다 엔티티 프레임 워크를 사용하여 데이터베이스에서로드되었으므로 엔티티 프레임 워크가 명확하게 이미 실패한 이유는 알 수 없습니다 코드의 다른 부분에서 작업하십시오.

이 예외의 이유는 무엇입니까? 이것은 건초 더미에서 유명한 바늘을 찾는 것과 같습니다.

[SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] 
    System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 
    System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31 
    System.Security.CodeAccessPermission.Demand() +46 
    System.Data.Common.Internal.Materialization.Translator.DemandMemberAccess() +50 
    System.Data.Common.Internal.Materialization.Shaper`1..ctor(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption, Int32 stateCount, CoordinatorFactory`1 rootCoordinatorFactory, Action checkPermissions, Boolean readerOwned) +165 
    System.Data.Common.Internal.Materialization.ShaperFactory`1.Create(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption, Boolean readerOwned) +93 
    System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute(ObjectContext context, ObjectParameterCollection parameterValues) +736 
    System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +149 
    System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +44 
    System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source) +182 
    System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1(IEnumerable`1 sequence) +41 
    System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable`1 query, Expression queryRoot) +59 
    System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) +150 
    System.Data.Entity.Internal.Linq.DbQueryProvider.Execute(Expression expression) +102 
    System.Linq.Queryable.FirstOrDefault(IQueryable`1 source) +265 
    ApplicationBoilerplate.DataProvider.EntityFramework.Repository`1.ReadOne(ISpecification`1 spec) +217 
    mvcForum.Web.Extensions.ForumExtensions.GetAccess(Forum forum, Group group) +129 
    mvcForum.Web.Extensions.ForumExtensions.GetAccess(Forum forum) +895 
    mvcForum.Web.ViewModels.ForumViewModel..ctor(Forum forum, Int32 topicsPerPage) +1353 
    mvcForum.Web.Areas.Forum.Controllers.HomeController.Index() +1260 
    lambda_method(Closure , ControllerBase , Object[]) +74 
    System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17 
    System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +208 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27 
    System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +55 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263 
    System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263 
    System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263 
    System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263 
    System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 
    System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +191 
    System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343 
    System.Web.Mvc.Controller.ExecuteCore() +116 
    System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97 
    System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10 
    System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37 
    System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21 
    System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12 
    System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 
    System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50 
    System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7 
    System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22 
    System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60 
    System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970061 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184 

작은 업데이트가, 내가 먼저 코드를 사용하고 있습니다 :

여기 스택 트레이스입니다. 보고 주셔서 감사합니다!

답변

1

엔티티 클래스에 공개되지 않은 속성이 포함 된 경우 예외가 발생합니다. 그들은 내부, 보호 또는 개인입니다. EF5 이하는 부분 신뢰 환경에서 실행될 때 공용 속성에 매핑 만 지원합니다.

+0

코드 우선이므로 공개 속성이 없습니다. –

+0

이것이이 문제의 해결책인지는 모르지만 내 문제는 해결되었습니다. 다음 단계 : 내 단위 테스트를 중간 정도의 신뢰로 실행하십시오. –