响应.重定向在2分钟后不起作用
本文关键字:不起作用 2分钟 重定向 响应 | 更新日期: 2023-09-27 18:15:57
我已经将一个asp按钮绑定到通过以下步骤生成一个xls文件的子例程:
- 执行一些sql查询(成功)
- 用结果数据集构建excel文件(成功,2MB)
- 将当前页面重定向到"DownloadPage.aspx?"filename="用标准操作构建和下载文件
但是在这一点上,它不会开始任何下载,即使excel文件在源文件夹中可用。奇怪的是,有时它会随机地起作用。没有抛出异常,但由于重定向导致线程中止。
所以,我没有其他的想法…你呢?感谢注。我尝试将一些IIS参数设置为6分钟或更长时间。
2分钟对于web请求来说是非常长的时间。长到大多数客户端会放弃,要么是浏览器超时,要么是用户离开。为什么需要这么长时间才能完成请求?是否存在可以改进的重大瓶颈?运行一些SQL查询和构建一个Excel文件不应该花那么长时间。从服务器的角度来看,让一个请求占用IO这么长时间也被认为是一个非常糟糕的主意。如果有很多用户,他们可以通过正常使用网站使服务器瘫痪。
如果它真的需要很长时间,您可能需要考虑异步方法。与其让用户等待重定向,不如立即提供某种反馈。将用户发送到指示其请求已被接收并正在处理的页面。然后他们可以继续使用该网站。当他们的数据准备好了,网站可以提供某种通知链接让他们知道。
在后端,站点可以启动另一个线程来完成这项工作。或者,这通常对web应用程序更好,您可以将请求在数据库中排队,并让Windows服务或调度控制台应用程序轮询该数据库以获取新请求,处理它们,并将输出保存在web应用程序可以查找的地方。然后,web应用程序中的通知系统将检查每个请求的输出(或者可能通过AJAX轮询或类似的东西),以通知用户数据准备好了。
我认为web浏览器在请求您的页面时遇到了超时。