在Web Garden模式下,除了opera之外,所有主流浏览器的进程Id是如何维护的

本文关键字:Id 进程 何维护 维护 模式 Garden Web 除了 opera 所有主 之外 | 更新日期: 2023-09-27 18:06:27

我在Web Garden模式下测试会话行为。

为什么除了Opera,所有主流浏览器都只使用一个进程(在服务器上)?怎么做呢?

这是一个非常简单的web应用程序:

后台代码:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(Process.GetCurrentProcess().Id);
}

标记:

<div>
    <asp:Button ID="Button2" runat="server" Text="Button" />
</div>

每次我点击按钮在Opera我得到不同的数字(取决于工作进程计数),这是正常的。但是在Chrome,我总是得到相同的进程id。

在Web Garden模式下,除了opera之外,所有主流浏览器的进程Id是如何维护的

你在这里做了一些错误的事情,并且在web garden上没有粘到浏览器进程。

我以前做过同样的测试,我从来没有遇到过这个问题。我不知道确切的机制,关于asp.net是如何选择什么进程将得到下一个请求,但不是粘在浏览器上。

更多

Web garden是指在同一台计算机/服务器/池上使用多个进程来处理每个客户端请求。

Process.GetCurrentProcess().Id显示实际运行您所请求的页面的进程。我不确定asp.net如何选择将选择哪个进程来运行下一个请求,可能与每个进程的可用性以及每个线程的运行有关。

无论如何都与客户端和调用浏览器的数据无关。所以如果你得到相同或不同的id,必须与服务器的加载有关,可能是客户端页面的缓存,但肯定与浏览器无关。