2013-01-10 73 views
2

我有一个ASPX WebForms站点,用户可以请求文件下载。下载链接是一个LinkBut​​ton,它将Response.Redirect()调用为.ashx文件。为大文件下载设置超时时间

我需要对其进行修改,以便如果它在20秒内未返回,它将对请求进行异步处理的web服务进行不同的调用。问题是,我不知道如何设置Response.Redirect的超时时间。

我知道设置超时的唯一地方是JQuery.Ajax调用,它根本没有下载文件。我还需要能够测试超时时间,以便我可以进行备用呼叫并调整UI。我在如何构建它的过程中有一些余地;例如,我读博客说创建一个iframe并将iframe.src设置为下载器.ashx。这工作,但我不能指定超时。

回答

2

我不认为这解决了您的问题,但您可以在web.config中设置页面的超时时间。例如,

<location path="Page.aspx"> 
    <system.web> 
     <httpRuntime executionTimeout="60" /> 
    </system.web> 
</location> 

ASP.NET HTTP runtime settings.

+0

这可能是有益的,但我看不出它如何帮助我捕获错误。我必须能够在JQuery中测试某些内容以查看请求是否超时。 – MrEff

+0

而不是让链接做一个Response.Redirect可以让它调用页面上的Web方法来下载文件并设置页面的executionTimeout?如果达到超时,我认为jQuery的ajax调用会捕获错误,然后您可以使用它的错误属性处理它。 – cmotley