什么是运行时主机?

运行时主机的确切定义是什么?

来自MSDN :

公共语言运行库旨在支持各种不同类型的应用程序,从Web服务器应用程序到具有传统丰富Windows用户界面的应用程序。 每种类型的应用程序都需要运行时主机来启动它。 运行时主机将运行时加载到进程中,在进程内创建应用程序域,并将用户代码加载到应用程序域中。

那么它是一个将运行时加载到另一个进程的进程吗?
如何在任务管理器中检查它?

不,这是一个将运行时DLL(例如mscoree.dll等)加载到其进程空间的进程。

所以只有一个进程空间。

引用的运行时实际上是.Net运行时或CLR。 从简化的传统操作系统的角度来看,CLR实际上只是一组DLL。 因此,您需要一个OS进程来加载和执行该DLL的入口点。 此托管可执行文件是您的运行时主机 实际上.Net运行时主机为CLR做了很多事情(参见主机概述 )

你提到过MSDN,所以我猜你已经看过那里的Runtime Hosts了。 您可以看到它们提供的示例都是托管CLR(DLL)的可执行文件。

希望有所帮助。

本文可能会有所帮助: 实现自定义运行时宿主 。 它讨论了主机的各个方面以及何时/为什么您可能希望实现自己的主机。

直接从文章中解脱出来:
.NET Framework附带的主机示例包括:

  • ASP.NET:ASP.NET附带的ISAPIfilter负责启动CLR并初始化将Web请求路由到ASP.NET进程所需的管道。
  • Internet Explorer:.NET Framework附带一个MIME筛选器,该筛选器挂接到Internet Explorer 5.01或更高版本,以执行从HTML页面引用的托管代码控件。
  • Shell可执行文件:每次从shell启动可执行文件时,都会调用一小段非托管代码,将控制权转移到CLR。

其他主机可能包括:

  • 数据库引擎未来版本的Microsoft SQL Server将允许使用支持.NET Framework的语言编写存储过程,并使用CLR执行。
  • 个人组织者几个电子邮件/日历/联系程序允许用户编写脚本来自定义电子邮件,约会等的处理。 很容易想象这些脚本在CLR上运行。 由于电子邮件系统传播的病毒激增,CLR提供的安全系统在这种情况下尤为重要。