【发布时间】:2012-03-31 18:35:56
【问题描述】:
我有一个由 asp.net 构建的网页,用于从数据库加载数据以显示。 但是当要加载的数据太多时,用户访问这个页面必须等待20秒,然后发生超时。他看不到结果。
我想增加超时时间或者开启Http Keep-alive或者做点什么让用户可以看到结果。
我尝试在 IIS7 中启用 HTTP Keep-Alive,但仍未解决。 哪位大神给点意见。
【问题讨论】:
标签: asp.net timeout keep-alive
我有一个由 asp.net 构建的网页,用于从数据库加载数据以显示。 但是当要加载的数据太多时,用户访问这个页面必须等待20秒,然后发生超时。他看不到结果。
我想增加超时时间或者开启Http Keep-alive或者做点什么让用户可以看到结果。
我尝试在 IIS7 中启用 HTTP Keep-Alive,但仍未解决。 哪位大神给点意见。
【问题讨论】:
标签: asp.net timeout keep-alive
您是否必须在第一页上显示所有数据,或者是否可以使用分页以便仅从数据库中加载前 10、50 或 100 行?您的用户可能还会发现更容易使用的设计,而不必从数千行中挑选一个项目。
这里有很多关于如何在 ASP.NET 中进行数据分页的问题,网上也有很多文章:
Stack Overflow ASP.NET paging
Efficiently Paging Through Large Amounts of Data (asp.net)
【讨论】:
这取决于您遇到的超时类型。
如果执行查询时发生超时,可以尝试增加Command对象的超时时间:sqlCommand.CommandTimeout = 120;
如果超时与ajax有关,增加ScriptManager超时:AsyncPostBackTimeout="120"
【讨论】:
菲, 什么都不需要。您所要做的就是确保您的 IIS 不会进入该特定网站的睡眠模式。因此,使用 IIS 属性为该网站启用 Keep-Alive(从版本 IIS 6.1 到 8 可用)。此外,外部 pinger 需要像 linux 中的 cron-job 活动一样工作。 在这种情况下,您可以免费使用“PingAlive.com”。 Jus 的添加网站,它会确保您的网站永远不会关闭(直到您的网站默认页面正常工作)。 谢谢。
【讨论】: