У меня есть относительно простое приложение ASP.net MVC 2, которое использует SubSonic. Кажется, что все локально работает хорошо, но когда я развернул его в 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. У кого-нибудь есть идеи о том, как я должен подходить к этому или где / в чем проблема? Еще раз, приложение работает хорошо локально.
Примечание: имена объектов / методов изменены в образце