この LOB アプリケーションは、CSLA ビジネス オブジェクトを使用するクライアント サーバー アプリケーションであり、これらのビジネス オブジェクトは NetDataContractSerializer を使用してシリアル化されています。サーバー側は WCF で実行され、クライアントにはエンドポイントがあります。
これはすべて、.NET 4.5 がインストールされた Windows 7 または Windows 8 からクライアント ソフトウェアを実行している場合に機能します。
最新の .NET 4.5.1 Framework を搭載した Windows 8 または Windows 8.1 でクライアント ソフトウェアを実行すると、次の例外が発生します。
メッセージを逆シリアル化しようとしているときにフォーマッタが例外をスローしました: パラメータ http://ws.lhotka.net/WcfDataPortal:FetchResultを逆シリアル化しようとしているときにエラーが発生しました。InnerException メッセージは、「行 1 位置 11619 のエラーです。名前空間 ' http://schemas.microsoft.com/2003/10/Serialization/Arrays ' からの 'Element' 'm_serializationArray' は想定されていません。要素 'm_keyRehashCount'.' が必要です。詳細については、InnerException を参照してください。
最も内側の例外は
行 1 位置 11619 のエラー。名前空間 ' http://schemas.microsoft.com/2003/10/Serialization/Arrays 'の 'Element' 'm_serializationArray'は予期されていません。要素 'm_keyRehashCount' が必要です。
これについては、stackoverflow または Google で何も見つかりません。CSLA フォーラムに同じ質問を投稿しました。おそらく、Connect にも投稿する必要があります。でも、ここはラッキーかも?
.NET Framework を 4.5.1 に更新する前に、開発環境をバックアップする時間が必要です
考えられる解決策は次の 2 つです。
- 2008 サーバーを .NET 4.5.1 にアップグレードします。
- クライアント ソフトウェアに .NET 4.5 の使用を強制する
クライアント ソフトウェアで .NET 4.5 のみを使用するように強制することはできますか? 他のアイデアはありますか?