最近在学习WCF,返回datatable的时候老是出现“An error occurred while receiving the HTTP response to http://localhost:9999/calculatorservice. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.”的错误。检查了半天才发现原来是返回的datatable没有给tablename赋值。
代码
public System.Data.DataTable GetDataTable()
{
DataTable mydt = new DataTable();
mydt.Columns.Add("UserID", typeof(int));
mydt.Columns.Add("UserName", typeof(string));
mydt.Columns.Add("Birthday", typeof(DateTime));
for (int i = 0; i < 300; i++)
{
DataRow dr = mydt.NewRow();
dr["UserID"] = i + 1;
dr["UserName"] = "xx" + i;
dr["Birthday"] = DateTime.Now;
mydt.Rows.Add(dr);
}
return mydt;
}
{
DataTable mydt = new DataTable();
mydt.Columns.Add("UserID", typeof(int));
mydt.Columns.Add("UserName", typeof(string));
mydt.Columns.Add("Birthday", typeof(DateTime));
for (int i = 0; i < 300; i++)
{
DataRow dr = mydt.NewRow();
dr["UserID"] = i + 1;
dr["UserName"] = "xx" + i;
dr["Birthday"] = DateTime.Now;
mydt.Rows.Add(dr);
}
return mydt;
}
后来加上mydt.TableName="mydt";就好了。