2013-03-01 33 views
0

環境:例外:參數必須是一個字段信息或的PropertyInfo在服務器

  • 開發PC:Windows 7的64位全新安裝時,Visual Studio 2012和 IIS 7.5
  • 部署服務器:Windows 2008的W/SP2,IIS 7,.NET 4.0(不知道這是否是32位或64位)
  • 語言:VB
  • 代碼庫:原來傳統的ASP,用
在ASP.NET做新的代碼添加

背景故事:

我正在改寫我們的內部網管理站點的一部分。我在App_Code的目錄下有一堆代碼(20多個文件),並定義了2個命名空間。我還在使用App_Code中的代碼的網站的子文件夾中有一個aspx頁面。我正在運行一個Linq查詢,該查詢從SqlServer中提取一些數據以顯示在頁面上。

問題:

當代碼被部署到服務器時,LINQ到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的開發服務器中;只是不在公共Web服務器上。

其他.net aspx頁面上的其他linq查詢可以工作,並且已經使用了許多函數。我嘗試刪除命名空間,添加行連續字符等等,試圖在它上面嘲諷髮型的想法。我儘可能多地搜索了答案,而且我可以找到的所有代碼文件都會引發錯誤。

我目前正在嘗試在vm中克隆環境(運行服務器2008的評估版本)並託管其中的站點。

任何可以提供的幫助將不勝感激。

回答

0

這似乎有一個與服務器上的環境下處理公共變量VS與LINQ查詢的公共屬性,當我在做我的

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

我加入了性能改進劑,以我的變量的方式的問題:

Class MyClass 
    Public Property var1 
End Class 

,而不是

Class MyClass 
    Public var1 
End Class 
相關問題