PageMethod默认超时

时间:2009-06-29 16:14:44

标签: asp.net

当我从javascript调用PageMethod而没有明确指定超时时是否设置了默认超时,如果是的话是什么?

由于

1 个答案:

答案 0 :(得分:6)

标准的XmlHttpRequest对象没有内置的超时机制。 Ajax请求将无限期地继续,因为没有标准的超时方法。有些方法you can get around this,我认为是ASP.NET在其框架中所做的。

IE8是唯一一个built-in timeout property的浏览器,所以我猜他们的Ajax框架会与之一致。在这种情况下,默认情况下超时将是无限期的。

ASP.NET对于异步页面任务也有AsyncTimeout属性,因此框架可能会在45秒内超时(服务器端),这是ASP.NET中异步任务的默认设置。页。

似乎没有我能找到的默认超时。如果我是你,我不会依赖默认的超时长度。如果您担心超时,则应指定自己的长度。默认情况下,超时可以无限长。用户不会无限期地等待,所以最好将超时定义为用户应该应对的最大等待时间(取决于上下文)。

<强>更新
我创建了一个带有Page方法的测试页面,该方法需要65分钟才能加载(使用Thread.Sleep())。页面方法调用等待了整整65分钟,因此看起来我的假设是正确的。页面方法默认情况下超时,或者如果超时,则超时超过1小时。不要忘记本地开发机器实际上有无限的服务器超时,因此ASP.NET将让脚本无限期运行。默认情况下,生产配置的ASP.NET执行超时为between 90 and 110 secionts seconds,具体取决于您运行的.NET版本。