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 で新しいコードが追加されています。

裏話:

イントラネット管理サイトのセクションを書き直していました。App_Code のディレクトリの下に、2 つの名前空間が定義された一連のコード (20 以上のファイル) があります。サイトのサブフォルダーに、App_Code のコードを使用する aspx ページもあります。SqlServer からデータを取得してページに表示する Linq クエリを実行しています。

問題:

コードがサーバーにデプロイされると、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 の開発サーバーで問題なく動作します。パブリックWebサーバー上ではありません。

他の .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 に答える