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 MVC 中设置默认 JSON 序列化程序