c# - Aspx 页面在浏览器窗口关闭后仍在后台工作

标签 c# asp.net iis

我有一个托管在 IIS 服务器上的 aspx 网站。该网站允许用户搜索一些信息,用户可以将详细信息导出到 excel。导出成功后,将向用户发送一封电子邮件,其中包含指向 excel 的链接。最近我观察到,即使在单击导出按钮后几秒钟内关闭了 Web 浏览器,也会生成报告并发送邮件。我真的很高兴看到这种行为,但谁能说出这背后的真正原因?

最佳答案

当用户单击导出按钮时,请求将发送到服务器,服务器将处理该请求直到结束,在您的例子中是通过电子邮件发送。

即使在按下按钮后客户端浏览器关闭,请求仍然被发送并且服务器不知道客户端浏览器关闭。

现在,通常(在整个过程中打开浏览器)请求被发送,客户端等待响应,响应在处理结束时返回。当您返回一个告诉您发生了什么的页面时,这是有道理的,但是当您的操作产生其他副作用(例如电子邮件)时,让客户等待似乎不合逻辑。在这种情况下,请考虑使用 ajax 请求发送请求,这将确保在处理请求时仍可以与页面的其余部分进行交互。

关于c# - Aspx 页面在浏览器窗口关闭后仍在后台工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16667520/

相关文章:

asp.net - 错误请求 - Visual Studio 2013 中的 Asp.net WebAPI 项目的主机名无效

asp.net - 在完整的 IIS 中调试 ASP.NET Web 表单

c# - WPF 用户控件绑定(bind)

c# - 解决 Unity 中的依赖关系

c# - 在 asp :Menu 中将父项和子项都设置为 "Selected"

apache - 非http服务器

c# - 如何从 Word 2010 插件(用 C# 开发)获取 "KeyPress"事件?

c# - 在新构建后保留 Session[] 变量

javascript - 带有动态 ASP.NET 标记的外部 javascript 文件中的 jQuery 触发器

asp.net - ASP.net 中的多语言 URL 重写