環境:
- 開発用 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 の評価コピーを実行)、その中でサイトをホストしようとしています。
提供できるヘルプは大歓迎です。