我有一个使用SubSonic的相对简单的ASP.net MVC 2应用程序。一切似乎都在本地运行良好,但当我将它部署到WinHost时,我不断得到如此异常:
System.TypeAccessException: Attempt by method 'DynamicClass.lambda_method(System.Runtime.CompilerServices.Closure, System.Data.Common.DbDataReader)' to access type 'System.RuntimeType' failed.
at lambda_method(Closure , DbDataReader )
at SubSonic.Linq.Structure.DbQueryProvider.Project[T](DbDataReader reader, Func`2 fnProjector)
at SubSonic.Linq.Structure.DbQueryProvider.Execute[T](QueryCommand`1 query, Object[] paramValues)
at lambda_method(Closure )
at SubSonic.Linq.Structure.DbQueryProvider.Execute(Expression expression)
at SubSonic.Linq.Structure.QueryProvider.System.Linq.IQueryProvider.Execute[S](Expression expression)
at System.Linq.Queryable.Count[TSource](IQueryable`1 source)
at Foo.Web.Data.Baz.SingleOrDefault(Expression`1 expression)
at Foo.Web.Models.Data.DataFacade.GetBar(Int32 id)
at Foo.Web.Controllers.Baz.Edit(Int32 id)
at lambda_method(Closure , ControllerBase , Object[] )
这绝对是一个令人头疼的事,因为我不确定具体我做错了什么。我的假设是它的环境(可能基于权限)。我不确定它是否是LINQ查询问题,SubSonic或特定于WinHost的东西。有没有人知道我应该如何处理这个或者问题在哪里/什么?再一次,该应用程序在本地工作正常。
注意:对象/方法名称在样本中更改
答案 0 :(得分:3)
这看起来像是一个中等信任问题。当前的亚音速版本不支持中等信任。如果您从github(http://github.com/subsonic/SubSonic-3.0)获取最新信息,那么7月10日的更改将启用中等信任。我自己尝试过,但源代码非常可靠。
答案 1 :(得分:0)
您是否尝试过更改应用程序的信任级别?