ユニットとサブユニットの2つのテーブルがあり、1対多の関係があります。ユニットは0個以上のサブユニットを持つことができます。
データベースにアクセスするには、WCFWindowsサービスでLinqto SQL(.dbmlファイル)を使用します。
Service Clientを使用して、任意のメソッドを呼び出してユニットまたはサブユニットのいずれかを取得します。データベースにサブユニットがない(サブユニットテーブルに0行がある)限り、正常に機能します。
1つ以上のサブユニットがある場合、同じメソッドを呼び出すと次のエラーが発生します。
- 「ソケット接続が中止されました...」
- 内部例外あり「読み取り操作が失敗しました。内部例外を参照してください。」
- 内部例外「ソケット接続が中止されました...」を除く
- 内部例外「既存の接続がリモートホストによって強制的に閉じられた」を除く
テーブルを削除して再作成し、Unit / SubUnitテーブルをDBMLに再追加し、サービスを再インストールしました。これまでこの問題に遭遇したことはありません。
「ソケットが中止されました」エラーは、WCFを介して大量のデータを渡そうとしたことが原因である可能性があることを理解していますが、現在データベースに1つのユニットと1つのサブユニットがあり、それでもこのエラーが発生します。
誰かがこれに光を当てることができますか?