Asp.net 如果我有一些巨大的进程运行来响应用户的点击,那么如果他们关闭页面,它会继续运行吗?

Asp.net 如果我有一些巨大的进程运行来响应用户的点击,那么如果他们关闭页面,它会继续运行吗?,asp.net,Asp.net,如果他们在进程启动后通过页面上的按钮关闭浏览器页面,该进程将继续运行直到完成,还是将终止?如果是这样的话,我将如何让它安全地死去呢?我会马上说,这完全取决于过程以及您如何编写解决方案 然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态来模拟的。因此,一旦这个过程开始,我会说是的,它将继续运行,直到它将响应发送回客户端。客户是否在那里接收信息完全是另一回事。我可以说,这完全取决于流程和您如何编写解决方案 然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态

如果他们在进程启动后通过页面上的按钮关闭浏览器页面,该进程将继续运行直到完成,还是将终止?如果是这样的话,我将如何让它安全地死去呢?

我会马上说,这完全取决于过程以及您如何编写解决方案


然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态来模拟的。因此,一旦这个过程开始,我会说是的,它将继续运行,直到它将响应发送回客户端。客户是否在那里接收信息完全是另一回事。

我可以说,这完全取决于流程和您如何编写解决方案


然而,根据我的经验,浏览器和服务器之间没有直接连接。它是通过使用会话状态来模拟的。因此,一旦这个过程开始,我会说是的,它将继续运行,直到它将响应发送回客户端。客户端是否在那里接收信息完全是另一回事。

页面将继续处理。如果要终止处理,可以检查属性并在客户端不再连接时结束处理

MSDN中的示例:

private void Page_Load(object sender, EventArgs e)
{

    // Check whether the browser remains
    // connected to the server.
    if (Response.IsClientConnected)
    {
        // If still connected, redirect
        // to another page. 
        Response.Redirect("Page2CS.aspx", false);
    }
    else
    {
        // If the browser is not connected
        // stop all response processing.
        Response.End();
    }
}


但是,这假定您能够检查属性。如果进行长时间运行的同步调用,则无法检查属性。如果是这种情况,您可以异步执行它,或者将长时间运行的调用分解为单独的较小调用,在进一步处理之前可以检查状态。

页面将继续处理。如果要终止处理,可以检查属性并在客户端不再连接时结束处理

MSDN中的示例:

private void Page_Load(object sender, EventArgs e)
{

    // Check whether the browser remains
    // connected to the server.
    if (Response.IsClientConnected)
    {
        // If still connected, redirect
        // to another page. 
        Response.Redirect("Page2CS.aspx", false);
    }
    else
    {
        // If the browser is not connected
        // stop all response processing.
        Response.End();
    }
}


但是,这假定您能够检查属性。如果进行长时间运行的同步调用,则无法检查属性。如果是这种情况,您可以异步执行它,或者将长时间运行的调用分解为单独的较小调用,在进一步处理之前可以检查状态。

当然,您也可以在此之前点击ScriptTimeout(),当然,您也可以点击ScriptTimeout()在此之前,我们是否有办法在页面上设置一些按钮,当点击按钮时会停止实际的处理?就像某种用户操作来停止进程一样?这里有没有什么方法可以让我们在页面上有一个按钮,当点击该按钮时,它会停止实际的进程?像某种用户操作来停止进程?