【发布时间】:2016-04-19 16:00:16
【问题描述】:
我有一个 WCF 端点,它返回从数据库查询的数据。例如,对于一个特定的呼叫,我知道我应该收到 175 条记录。但是我的 WCF 代码总是只返回 105 条记录。通过运行端点函数执行的后端存储过程,我能够获得预期的 175 条记录。此外,如果我使用 WCF 测试客户端连接到端点,它也会获得 175 条记录。
我尝试了很多方法(更改绑定、readerquotas、fiddler 等),但无法确定我的代码有什么不同。基本上,我的测试代码是一个 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
关于为什么我的代码会返回不正确的结果集的任何想法?
【问题讨论】:
-
您是否尝试在数据库上运行分析器以查看当您从 winforms 应用程序调用 WCF 服务时进行的查询调用是什么?
-
@Rajesh 我没有使用数据库分析器...不幸的是,我的公司没有权限对数据库进行分析。
-
最好的选择是在调用数据库之前包含一些日志语句,这些语句将捕获所有参数并查看它们是否与 WCF 测试客户端和您的 Windows 窗体应用程序中的相同
标签: c# wcf wcftestclient