我创建了一个Web服务(ASP.NET Web服务应用程序,.NET framework 3.5),它访问数据库,检索数据并将其作为 DataTable 类型返回给客户端。
当我从客户端应用程序调用此Web服务时,我收到错误消息“XML文档中存在错误(1,36276)”,内部异常“意外的文件结束解析名称时已经发生了。第1行,第36276位。“
我试图减少查询返回的数据量(SELECT TOP 1) - 错误消失了。但我需要我所有的数据:)(118行,30列)
我想问题是Web服务响应字符串不适合默认的序列化缓冲区(可能是4kb),因此存在“意外的文件结束”。
如何增加Web服务序列化缓冲区的长度(或类型)?
网络服务代码:
[WebMethod]
public DataTable GetTargetAchievement()
{
var dt = new DataTable("TableName");
using (var conn = new SqlConnection(GetConnectionString()))
{
using (var da = new SqlDataAdapter("select * from [Table] ORDER BY 1,3,2; ", conn))
{
da.Fill(dt);
}
}
return dt;
}
客户端(WPF)代码:
private void btnCallService_Click(object sender, RoutedEventArgs e)
{
TAA.AuditService service = new TAA.AuditService();
var dt = service.GetTargetAchievement();
lbxList.ItemsSource = dt.DefaultView;
}