日期:2014-05-20  浏览次数:20934 次

win2003 IIS6中能使用linq编写的项目吗?
各位好:

我的电脑系统是Windows 7,安装的vs2008,开发了一个用linq写的项目,可以上传到Windows 2003 IIS6的服务器后,经过反复检查发现遇到linq相关的代码就无法执行,我已经在Windows2003系统中安装了.net 3.5了,并且在IIS的asp.net面板选定的是2.0。想问问大家Windows2003 怎么设置才能支持linq?

执行linq查询的时候报错如下:

指定的转换无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidCastException: 指定的转换无效。

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  

堆栈跟踪: 


[InvalidCastException: 指定的转换无效。]
  System.Data.SqlClient.SqlBuffer.get_DateTime() +4835750
  System.Data.SqlClient.SqlDataReader.GetDateTime(Int32 i) +56
  Read_Card(ObjectMaterializer`1 ) +1727
  System.Data.Linq.SqlClient.ObjectReader`2.MoveNext() +29
  System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +7665172
  System.Linq.Enumerable.ToList(IEnumerable`1 source) +61

 


------解决方案--------------------
从堆栈来看,LINQ已经被正常加载了。
看起来是程序逻辑的错误:在转换DateTime的时候源类型可能不支持。
------解决方案--------------------
将System.Data.Linq.dll复制到你部署的IIS目录去。