エンティティフレームワーク/ WCF接続の順序
-
03-07-2019 - |
質問
システムで奇妙な動作をする。次は何ですか:
WCFを使用して読み取り/書き込み用のチャネルを開く前にサーバーエンドポイントを設定するメインがあります。
また、エンティティフレームワークベースのデータベース抽象化レイヤーもあります。 DataBaseクラスをインスタンス化すると、DBに接続します。
エンドポイントの1つにこのDB抽象化クラスが含まれています。エンドポイントをWCFに登録した後、データベースオブジェクトをインスタンス化します。
この順序で行う場合:
WCFにサービスを追加
DBに接続
読み取り/書き込み用にWCFエンドポイントを開く
送信に失敗しました。
この順序で行う場合:
読み取り/書き込み用にWCFエンドポイントを開きます
WCFにサービスを追加
DBに接続
すべてが動作します。
これがなぜ起こっているのか、私は明らかにかなり失望しています。どんなアイデアでも大歓迎です。必要な情報があれば教えてくれれば、喜んで投稿します。ありがとう!
解決
誰かがこれについて疑問に思っていた場合に備えて、問題を解決することができました。
WCFレイヤーの起動時に既知の型をシリアル化システムに追加する方法があります。
WCFは抽象型またはジェネリック型をシリアル化することを望みませんが、ORフレームワークはそれらを広範囲に使用します。この型の収集を行う前にDBを接続すると、WCFは逆シリアル化フェーズでジェネリック型を介して中断します。
チェックを追加して、型がそのコレクションに追加される前に抽象型または汎用型ではないことを確認して、問題を修正しました。
所属していません StackOverflow