我正在尝试将数据源绑定到转发器,例如,在页面加载时绑定到Web服务(来自不同网站的.asmx)。 webservice从sql调用返回一个DataSet。这样做的最佳方法是什么?
答案 0 :(得分:1)
因为您正在呼叫另一个网站,您必须应对两个问题(特别是如果此Web服务位于其他人的网站上或通过公共互联网)。首先,从其他网站检索数据可能会有延迟。其次,其他网站可能会超时。
至少应该考虑asychronous page请求。正如这篇MSDN文章所述:
如果同步请求变为I / O. 绑定 - 例如,如果它调用 远程Web服务或查询 远程数据库并等待呼叫 回来 - 然后分配的线程 对请求无能为力 直到通话返回。这阻碍了 可扩展性因为线程池 具有有限数量的线程 可用。如果所有请求处理 线程被阻塞等待I / O. 操作完成,另外 请求排队等待 线程是免费的。最好, 吞吐量因请求而减少 等待更长时间处理。最坏的情况是 队列填满,ASP.NET失败 后续请求使用503“服务器 不可用的“错误。
但最好的解决方案可能是使用AJAX。加载页面然后发出ajax请求以填充转发器。这样,当您在Web服务上等待时,您可以获得漂亮的“旋转”图形或其他内容。
答案 1 :(得分:0)
调用Web服务,获取结果,并将其绑定到转发器。
如果可以的话,您可能还会尝试将信息缓存一段时间,如果可能的话,可以帮助提升整体效果。