文章分类 - Cassini 源码分析
Cassini(卡西尼)是asp.net上的一个开源项目。项目演示了如何自己创建一个web server并且运行一个asp.net应用程序。
摘要:通过初步浏览全部代码之后,我们大致上明白了: 1、执行流。asp.net程序具体是如何执行的?一个asp.net的应用程序的执行首先是需要一个宿主,通过建立宿主后,就建立了执行asp.net应用代码的能力。执行一次asp.net请求,需要通过HttpRuntime.ProcessRequest(SimpleWorkerRequest)来激发执行,而SimpleWorkerRequest需要被重载...
阅读全文
摘要:因为connection对象仅仅跟host对象相关,且处理一个套接字,所以其数据成员仅有: private Host _host; //指向宿主对象 private Socket _socket; //当前套接字 我们知道host调用且仅了conn.ProcessOneRequest();方法,所以我们首先要找...
阅读全文
摘要:internal class Host : MarshalByRefObject {……} 首先,我们看到Host仅能够在cassini项目中使用,因为是 internal 的类定义。另外,继承自MarshalByRefObject,允许在支持远程处理的应用程序中跨应用程序域边界访问对象。我们联想到asp.net对于应用程序的执行方式是应用程序域为划分边界的,作为Host必须能够支持跨应用程序域...
阅读全文
摘要:我们从启动程序的部分开始分析吧。 启动的入口是 Main函数,这个函数仅仅存在于CassiniWebServer ,而CassiniWebServer继承自Form类,但是我们看到,该类并没有实现代码(仅仅是提供一个入口)。在Main函数中,仅仅有两行代码: [STAThread] public static int Main(String[] args) { ...
阅读全文
摘要:CASSINI源代码分析 (1) 2004-11-10 为什么要分析CASSINI? Cassini(卡西尼)是asp.net上的一个开源项目。主要给出一个脱离IIS实现asp.net执行环境。项目演示了如何自己创建一个web server,并且运行一个asp.net应用程序。 研究 Cassini可以了解: 1、.net 环境下的web server如何实现,注意那些问题 ...
阅读全文