gpt4 book ai didi

c# - 如何防止 ASP.NET 中的浏览器超时?

转载 作者:行者123 更新时间:2023-12-04 00:26:05 26 4
gpt4 key购买 nike

场景:

用户将一个小文件或大约 100 kB 上传到可能包含 1000 个工作单元的 ASP.NET 4.0 应用程序。然后服务器开始处理工作单元,一次一个。由于从外部服务请求信息,每个单元需要几秒钟才能完成。仅当所有单元都使用事务成功完成时,结果才会保存到数据库中。完成后,用户可能会获得已完成操作的列表。

问题是用户没有得到确认,而是我认为他的浏览器因为超时而放弃了。

future 的文件预计会大几百倍,从而增加了问题。

我想防止这种超时。

以下是我的一些想法:

  1. 优化代码以更快地运行。这已经完成,不再是问题。
  2. 并行运行对外部服务的请求。
  3. 稍微增加服务器超时时间。
  4. 让用户上传文件,然后在文件处理完毕后向他发送一封包含结果的电子邮件。
  5. 在等待时以某种方式刷新页面并向用户显示一些进度信息,例如完成 5% - 10 分钟内完成。

如何实现最后一步,显示进度信息并防止浏览器超时?

欢迎提出其他建议。

谢谢,

最佳答案

您需要从浏览器响应中分离处理文件。这是通过

  • 在队列中创建一个持久项(即在数据库、文件等中),以使其具有容错性
  • 向浏览器返回成功结果
  • 创建一个队列 worker 以异步处理您的队列。

关于c# - 如何防止 ASP.NET 中的浏览器超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5938975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com