C# DataTable Webmethod仅适用于thread.sleep

C# DataTable Webmethod仅适用于thread.sleep,c#,asp.net,datatable,webmethod,C#,Asp.net,Datatable,Webmethod,我尝试序列化DataTable返回以在WebMethod上使用它很简单,如下所示: DataTable dtResult = Occurrences.Search(....); 问题是,如果我马上打字的话 return dtResult.Rows.Count.ToString(); 它将返回“0” 但如果我在第一行后面加上: System.Threading.Thread.Sleep(2000); 一切正常,行数为2 什么时候开始数据表获取是异步的?另一件有趣的事:在localhost上,

我尝试序列化DataTable返回以在WebMethod上使用它很简单,如下所示:

DataTable dtResult = Occurrences.Search(....);
问题是,如果我马上打字的话

return dtResult.Rows.Count.ToString();
它将返回“0”

但如果我在第一行后面加上:

System.Threading.Thread.Sleep(2000);
一切正常,行数为2


什么时候开始数据表获取是异步的?另一件有趣的事:在localhost上,即使没有thread.sleep,它也能完美地工作。当我将它发送到开发服务器时,它会出错,并且只有在我键入thread.sleep时才能工作。

您能确保在没有sleep的情况下执行查询吗?您可以监视SQL server并查看查询需要多长时间。但据我所知,抓取不是异步的。你能提供搜索方法的代码吗(它看起来不像是一个DataTable方法)?什么是
实例。搜索
?它做什么以及如何返回数据?WebMethods可以是异步的,你知道,搜索方法只返回一个DataTable,即使查询需要5秒钟以上,获取也不应该是异步的。我以前从未遇到过这种错误是的,但搜索不是一种.NET方法,这意味着它要么是您正在使用的框架的一部分,要么是项目的内部,这就是为什么我们要求查看此方法的代码,以确定问题是否来自它。否则,我们帮不了什么忙。它确实调用了一个外部DAL,它对整个系统的任何查询都起作用,我只是在搞这个。添加了关于该问题的更多信息。Stuff在本地主机上工作,但在开发环境中不工作