データベースからクエリされたデータを返すWCFエンドポイントがあります。たとえば、特定のコールについては、175レコードを受け取る必要があることがわかります。しかし、私のWCFコードは常に105レコードしか返さない。エンドポイント関数が実行するバックエンドストアドプロシージャを実行して、予想される175のレコードを取得できました。また、WCFテストクライアントでエンドポイントに接続すると、175レコードも取得されます。WCF呼び出しコードですべての予期したデータが返されない
私はバインディング、リーダークオータ、フィドラーなどを変更してみましたが、私のコードで何が違うかを判断できませんでした。基本的にテスト用のコードは、エンドポイントへのサービス参照を持つwinformsアプリケーションです。私はデータのサイズが大きいので、私のapp.configで655360000にmaxReceivedMessageSizeを増加させます。私はバインディングとしてWSHttpを使用しています。私のコードは不正な結果セットを返す理由として
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
任意のアイデア:下記の呼び出しを実行し、105件のレコードを返すコードはありますか?
データベースでプロファイラを実行して、winformsアプリケーションからWCFサービスを呼び出すときに実行されたクエリ呼び出しを確認しようとしましたか? – Rajesh
@Rajesh私はデータベースプロファイラを使用していませんでした...残念ながら私はDBに対してプロファイルするために私の会社で許可を得ていません。 – DougEC
DBへの呼び出しがすべてのパラメータを取得し、WCFテストクライアントとWindowsフォームアプリケーションから同じであるかどうかを確認する直前に、いくつかのロギングステートメントを含めることをお勧めします。 – Rajesh