データベースからクエリされたデータを返す WCF エンドポイントがあります。たとえば、特定の通話の場合、175 件のレコードを受信する必要があることがわかっています。しかし、私の WCF コードは常に 105 レコードしか返しません。エンドポイント関数が実行するバックエンド ストアド プロシージャを実行することで、予想される 175 レコードを取得できます。また、WCF テスト クライアントを使用してエンドポイントに接続すると、175 レコードも取得されます。
私は多くのことを試しました (バインディング、readerquotas、フィドラーなどの変更) が、コードの違いを特定できませんでした。基本的に、テスト用の私のコードは、エンドポイントへのサービス参照を持つ winforms アプリです。データのサイズが大きいため、app.config で maxReceivedMessageSize を 655360000 に増やします。バインディングとして WSHttp を使用しています。以下は、呼び出しを実行して 105 レコードを返すコードです。
var client = new MyDataClient("WSHttpBinding_IMyData");
var data = client.GetMyDataByDateRange("Location123", DateTime.Now.Date, DateTime.Now.Date).ToList();
MessageBox.Show(string.Format("Got {0} records", data.Count)); // always 105
私のコードが間違った結果セットを返す理由について何か考えはありますか?