ASP.Net 是不是曾经在默认的 AppDomain 中运行?

Posted

技术标签:

【中文标题】ASP.Net 是不是曾经在默认的 AppDomain 中运行?【英文标题】:Does ASP.Net ever run in the default AppDomain?ASP.Net 是否曾经在默认的 AppDomain 中运行? 【发布时间】:2017-02-16 20:56:49 【问题描述】:

我遇到了一个有趣的情况,我想确保我没有在 ASP.Net Web Api 服务上的默认 AppDomain 中运行(如果在默认 AppDomain 中运行,显然 RazorEngine 会出现锁定临时文件的问题)。据我所知,当 Application_Start 运行时,它已经不在默认的 AppDomain 中了。

检查使用:AppDomain.CurrentDomain.IsDefaultAppDomain() 返回false

在任何情况下,ASP.Net 会在默认的 AppDomain 中运行吗?

【问题讨论】:

好问题。我可能误解了您的问题,但这是您的网络服务器的设置,默认应用程序域不是您可以选择的设置,它始终是特定的应用程序域(池)。 【参考方案1】:

您好,用户代码无法访问 ASP.NET 中的默认 CLR AppDomain。然而,ASP.NET 运行时确实使用默认的 AppDomain 来处理某些事情,但它会创建一个特定的 AppDomain 来运行用户代码。这就是为什么 IsDefaultAppDomain 返回 false 并且总是会返回 false 的原因:)

希望这会有所帮助!

【讨论】:

添加一些引用来说明您从何处获得此信息,您会对您的回答做出更好的反应。【参考方案2】:

不,应用程序不会在默认域中运行。在一个 w3wp 进程中,可以托管多个 Web 应用程序,每个应用程序都在自己的 appdomain 中运行。 Asp.net 在默认域中运行一些代码来管理这些应用程序域。例如创建/卸载域,监控进程内存压力等。

【讨论】:

添加一些引用来说明您从何处获得此信息,您会对您的回答做出更好的反应。

以上是关于ASP.Net 是不是曾经在默认的 AppDomain 中运行?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Identity 的默认密码哈希器 - 它是如何工作的,它是不是安全?

Asp.net Mvc4默认权限详细(下)

在 ASP.NET MVC 中设置默认 JSON 序列化程序

在 ASP.NET MVC 3 中为控制器设置默认操作(而不是索引)

ASP.NET MVC 对于视图引擎的优化

如何在 ASP .NET Core 2.1 中将登录页面设为默认路由?