什么是运行时主机?

时间:2010-02-18 03:44:07

标签: c# process clr runtime

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

From MSDN

  

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

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

2 个答案:

答案 0 :(得分:6)

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

所以只有一个处理空间。

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

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

希望有所帮助。

答案 1 :(得分:3)

这篇文章可能有所帮助:Implementing a custom runtime host。它讨论了主机的各个方面以及何时/为什么您可能希望实现自己的主机。

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

  • ASP.NET:随附的ISAPI筛选器 用ASP.NET负责 启动CLR并初始化 路由Web请求所需的管道 到ASP.NET进程。
  • Internet Explorer:.NET Framework随附 使用挂钩的MIME过滤器 Internet Explorer 5.01或更高版本 执行托管代码控制 从HTML页面引用。
  • Shell可执行文件:每次都是 可执行文件是从 外壳,一小块不受管理的 代码被调用转换 控制到CLR。

其他主机可能包括:

  • 数据库引擎未来版本 Microsoft SQL Server将允许 要写入的存储过程 支持.NET的语言 框架和执行与 CLR。
  • 个人组织者有几个 电子邮件/日历/联系方案 允许用户编写脚本 自定义电子邮件的处理 消息,约会等。 很容易想象这些脚本 在CLR上运行。安全 CLR提供的系统是 在这种情况下尤为重要 因为。的扩散 病毒通过电子邮件系统传播。