相关疑难解决方法(0)

检测ASP.NET MVC中的异步客户端断开连接

给定一个异步控制器:

public class MyController : AsyncController 
{
    [NoAsyncTimeout]
    public void MyActionAsync() { ... }

    public void MyActionCompleted() { ... }
}
Run Code Online (Sandbox Code Playgroud)

假设MyActionAsync开始一个需要几分钟的过程.如果用户现在进入MyAction操作,浏览器将等待连接打开.如果用户关闭其浏览器,则关闭连接.是否有可能检测到服务器上何时发生这种情况(最好是在控制器内)?如果是这样,怎么样?我尝试过压倒,OnException但在这种情况下永远不会发生.

注意: 我非常感谢下面的有用答案,但这个问题的关键方面是我正在使用AsyncController.这意味着HTTP请求仍然是打开的(它们像COMET或BOSH一样长寿),这意味着它是一个实时套接字连接.为什么在此实时连接终止时(即"通过对等方重置连接",TCP RST数据包)不能通知服务器?

c# asp.net-mvc asynchronous

14
推荐指数
3
解决办法
1万
查看次数

标签 统计

asp.net-mvc ×1

asynchronous ×1

c# ×1