gpt4 book ai didi

.net - 是否为每个请求创建 AppDomains?

转载 作者:行者123 更新时间:2023-12-04 07:14:56 28 4
gpt4 key购买 nike

在 ASP.NET 3.5(带有 IIS6)中,是否为每个请求创建了 AppDomains?我知道所有应用程序在 w3wp.exe 下都有自己的 AppDomain,但是整个 AppDomain 究竟是如何工作的?

我今天和一位同事争论,他试图说服我,如果 ASP.NET 应用程序有一个静态对象(或 Singleton 类),这个对象将在所有请求之间共享。我认为这是错误的。我对吗?我如何说服我的同事?

谢谢!

最佳答案

我很抱歉地说你的同事是对的。在 ASP.NET 应用程序中,在 IIS 中配置的每个应用程序都在其自己的 AppDomain 中运行,这是单例对象的范围。因此,App1 中的单例可用于 App1 的所有请求(如果处理不当,可能会成为并发),但 App2 中的请求将无法访问 App1 中的单例。

Threading and Pooling in the HTTP Pipeline
(来源:microsoft.com)

MSDN 杂志中的这张图有助于显示每个应用程序如何在其自己的 AppDomain 中隔离。虽然该图显示了 IIS5 工作进程 (aspnet_wp.exe),但对于配置为在同一应用程序池中运行的应用程序,IIS6 工作进程将是类似的。

关于.net - 是否为每个请求创建 AppDomains?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/452845/

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