0

环境:

  • 开发 PC:Windows 7 x64 全新安装、Visual Studio 2012 和 IIS 7.5
  • 部署服务器:Windows 2008 w/ sp2、iis 7、.Net 4.0(不确定是 32 位还是 64 位)
  • 语言:VB
  • 代码库:最初是经典的 ASP,在 ASP.NET 中使用

幕后故事:

我正在重写我们的 Intranet 管理站点的一部分。我在 App_Code 的目录下有一堆代码(20 多个文件),定义了 2 个命名空间。我在站点的子文件夹中也有一个 aspx 页面,它使用 App_Code 中的代码。我正在运行一个 Linq 查询,该查询从 SqlServer 中提取一些数据以显示在页面上。

问题:

将代码部署到服务器时,linq-to-sql 查询错误

Stack Trace:
    [ArgumentException: Argument must be either a FieldInfo or PropertyInfo]
    System.Linq.Expressions.Expression.ValidateSettableFieldOrPropertyMember(MemberInfo member, Type& memberType) +2751766
    System.Linq.Expressions.Expression.Bind(MemberInfo member, Expression expression) +48
    {my aspx file class}.{defined function} in {my aspx.vb file}
    {my aspx file class}.pageLoad() in {my aspx.vb file}
    {my aspx file class}._Lambda$__1(Object a0, EventArgs a1) in C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\06df741c\5a279add\App_Web_{my aspx file name}.aspx.2589a445.y_7knnxz.0.vb:0
    System.Web.UI.Control.OnLoad(EventArgs e) +91
    System.Web.UI.Control.LoadRecursive() +74
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207

linq 查询在我的本地机器的 IIS 服务器和 Visual Studio 2012 的开发服务器上运行良好;只是不在公共网络服务器上。

其他 .net aspx 页面上的其他 linq 查询确实有效,并且以这种方式使用了许多功能。我曾尝试删除命名空间、添加行继续字符等...... 我已经尽可能多地搜索以找到答案,我能找到的只是引发错误的代码文件。

我目前正在尝试在 vm 中克隆环境(运行服务器 2008 的评估副本)并在其中托管站点。

任何可以提供的帮助将不胜感激。

4

1 回答 1

0

当我在执行我的操作时,服务器上的环境使用 linq 查询处理公共变量与公共属性的方式似乎存在问题

Select New MyClass With { .var1 = result.variable }

我将属性修饰符添加到我的变量中:

Class MyClass
    Public Property var1
End Class

代替

Class MyClass
    Public var1
End Class
于 2013-03-02T16:41:46.780 回答