我最近在共享主机上遇到了linq的问题 主机是共享智能,它们支持框架的v3.5。但是,我不确定他们是否安装了SP1。我怀疑他们没有。
我有一个简单的News
表,其结构如下:
NewsID uniqueidentifier
Title nvarchar(250)
Introduction nvarchar(1000)
Article ntext
DateEntered datetime (default getdate())
IsPublic bit (default true)
我的目标是显示此表中的3条最新记录。我最初使用D& D方法(我知道,我知道)并创建了一个linq数据源,并且无法找到一种方法来限制我想要的结果,所以我删除了它并写了以下内容:
var dc = new NewsDataContext();
var news = from a in dc.News
where a.IsPublic == true
orderby a.DateEntered descending
select new { a.NewsID, a.Introduction };
lstNews.DataSource = news.Take(3);
lstNews.DataBind();
这完全适用于我的本地机器。
但是,当我将所有内容上传到共享主机时,我收到了以下错误:
.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.MethodAccessException:
.Read_<>f__AnonymousType0`2
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>)
我试图在Google上搜索错误,但没有成功。然后我尝试以我能想象的各种方式修改我的查询,删除where / orderby参数的各种组合,以及将我的查询限制为单个列,甚至删除 Take命令。
因此,我的问题分为三部分:
答案 0 :(得分:2)
System.MethodAccessException
,或者其中一个引用的版本错误。
我要做的第一件事就是尝试将代码上传并引用到BIN中的LINQ程序集,而不是共享托管服务提供商GAC。