在后面的asp.net代码中使用web服务的最佳方法

时间:2008-10-31 13:39:58

标签: asp.net sql-server vb.net web-services asmx

我正在尝试将数据源绑定到转发器,例如,在页面加载时绑定到Web服务(来自不同网站的.asmx)。 webservice从sql调用返回一个DataSet。这样做的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

因为您正在呼叫另一个网站,您必须应对两个问题(特别是如果此Web服务位于其他人的网站上或通过公共互联网)。首先,从其他网站检索数据可能会有延迟。其次,其他网站可能会超时。

至少应该考虑asychronous page请求。正如这篇MSDN文章所述:

  

如果同步请求变为I / O.   绑定 - 例如,如果它调用   远程Web服务或查询   远程数据库并等待呼叫   回来 - 然后分配的线程   对请求无能为力   直到通话返回。这阻碍了   可扩展性因为线程池   具有有限数量的线程   可用。如果所有请求处理   线程被阻塞等待I / O.   操作完成,另外   请求排队等待   线程是免费的。最好,   吞吐量因请求而减少   等待更长时间处理。最坏的情况是   队列填满,ASP.NET失败   后续请求使用503“服务器   不可用的“错误。

但最好的解决方案可能是使用AJAX。加载页面然后发出ajax请求以填充转发器。这样,当您在Web服务上等待时,您可以获得漂亮的“旋转”图形或其他内容。

答案 1 :(得分:0)

调用Web服务,获取结果,并将其绑定到转发器。

如果可以的话,您可能还会尝试将信息缓存一段时间,如果可能的话,可以帮助提升整体效果。