
上QQ阅读APP看书,第一时间看更新
1.3 进入ASP.NET
当解决了服务监听问题之后,下一步要进行的就是具体请求处理了。为了帮助程序员解决Web开发的问题,ASP.NET从一开始就出现在.NET Framework中,用于处理Web开发相关的问题,ASP.NET所涉及的类大多数定义在System.Web程序集中。
在.NET中,程序集管理的最小逻辑单位为应用程序域 (AppDomain),对于.NET程序来说,可以动态加载程序集到应用程序域中。但是,加载之后的程序集不能单独卸载,只能以应用程序域为单位来整体卸载,应用程序域提供了四个重要的机制:
□隔离,不同应用程序域之间不能直接访问。跨应用程序域访问的对象必须派生自System.MarshalByRefObject。
□卸载,被加载的程序集只能以应用程序域为单位卸载。
□安全,以应用程序域为边界的安全机制。
□配置,以应用程序域为边界的程序配置。
ASP.NET将网站应用程序寄宿在一个独立的应用程序域中,以便于管理。虽然通过System.AppDomain也可以创建自定义的应用程序域,但是,ASP.NET在System.Web.Hosting命名空间中定义了更加方便的辅助类,以协助程序员创建寄宿 Web服务器程序所涉及的应用程序域,并设置应用程序域的相关参数。
由于我们的应用程序将与Web应用程序运行在不同的应用程序域中,这就涉及了跨域的访问问题。在.NET中,跨域访问的类必须派生自System.MarshalByRefObject,这样,我们的管理程序将可以得到一个远程对象的代理对象,通过这个代理对象来访问位于Web应用程序域中的对象。