返学费网 > 培训机构 > 西安.NET培训中心

029-88789460

全国统一学习专线 8:30-21:00

 ASP.NET的底层的工作机制
 

        ASP。NET是什么?
  让咱们从最简朴的定义开端,ASP。NET是什么?我通常喜爱用如下语句来描写ASP。NET。
  ASP。NET是完整运用托管代码解决Web要求的一个成熟引擎平台。它不只仅只是WebForms和WebServices。
  ASP。NET是一个要求解决引擎。它获取客户端要求,而后通过它内置的管道,把要求传到一个起点,在这个起点,开发者能够增加解决这个要求的逻辑代码。实践上这个引擎和HTTP或许Web Server是完整离开的。事实上,HTTP运行时是一个组件,你能够把它宿主在IIS之外的运用顺序上。甚至完整能够和其它的效劳组合在一起。例如,你能够把HTTP运行时宿主在Windows桌面运用顺序里
  通过运用内置的管途径由要求,HTTP运行时供给了一套庞杂的,但却很优雅的机制。在解决要求的每一个层面都关涉到许多对象,但大多数对象都能够通过派生或许事件接口来扩大。所以,此框架具备十分高的可扩大性。通过这一套机制,能够进入较低档次的接口如:缓存,身份验证,受权等是有能够的。你能够在解决要求之前或之后过滤内容,或许仅仅把匹配指定签名的客户端要求间接路由到你的代码里或转向其它的URL。针对同一件事件,能够通过不同的解决方法实现,而且实现代码都十分的直观。除此之外,在轻易开发和性能之间,HTTP运行时还供给了最佳的灵巧性。
  全部ASP。NET引擎完整构建在托管代码里,一切的扩大性功用都是通过托管代码的扩大供给。关于功用壮大的。NET框架而言,运用本人的货色,构建一个成熟的、高性能的引擎系统构造已经成为一个遗言。虽然如此,但重要的是,ASP。NET给人印象最深的是鼠目寸光的设计,这使得在其之上的义务变得十分轻易,并且供给了简直能够钩住要求解决当中恣意局部的才能。
  运用ASP。NET能够实现一些义务,之前这些义务是运用IIS上的ISAPI扩大和过滤来实现的。虽然还有一些限制,但与ASP相比,已经有了很大的提高。ISAPI是底层Win32款式的API,仅它的接口就有1兆,这关于大型的顺序开发是十分艰难的。因为ISAPI是底层的接口,因而它的速度也是十分的快。但关于企业级的顺序开发是相称的难于治理的。所以,在肯定的时光内,ISAPI重要充任其它运用顺序或平台的桥接口。然而无论如何,ISAPI没有被废除。事实上,微软平台上的ASP。NET和IIS的接口是通过宿主在。NET里的ISAPI扩大来通讯的,而后直达ASP。NET运行时。ISAPI供给了与Web Server通讯的中心接口,而后ASP。NET运用非托管代码获取要求以及对客户端要求收回响应。ISAPI供给的内容经由公共对象相似于HttpRequest和HttpResponse,通过一个设计优异的、可走访的接口,以托管对象的方法裸露非托管数据。
  从阅读器到ASP。NET让咱们从一个典范的ASP。NET Web要求的性命周期的起点开端。用户通过在阅读器中键入一个URL,点击一个超链接,提交一个HTML表单(一个post要求),或许一个客户端顺序调用基于ASP。NET的WebService(通过ASP。NET供给效劳)。在效劳器端,IIS5或许IIS6将会收到这个要求。ASP。NET的底层通过ISAPI扩大与IIS通讯,而后,通过ASP。NET,这个要求通常被路由到一个带有。aspx扩大名的页面。然而,这个解决历程如何义务,则完整依靠于HTTP解决器(handler)的履行。这个解决器将被装置用于解决指定的扩大。在IIS中,。aspx经由“运用顺序扩大”被映射到ASP。NET ISAPI的dll文件:aspnet_isapi。dll。每一个触发ASP。NET的要求,都必需经由一个已经注册的,并且指向aspnet_isapi。dll的扩大名来标识。
  注:ISAPI是自定义Web要求解决中第一个并且具备最高性能的IIS入口点。
  依靠扩大名,ASP。NET把一个要求路由到一个适当的解决器,该解决器则担任解决这个要求。举个例子,WebServices的扩大名。asmx不会把一个要求路由到磁盘上的某一个页面,而是会路由到在定义中附加了指定特征(WebMethodAttribute)的类,此特征会把它标识成一个Web Services的实现。许多其它的解决器将随着ASP。NET一起被装置。当然也能够定义你本人的解决器。在IIS里一切的HttpHandler被映射并指向ASP。NET ISAPI扩大,并且这些HttpHandler也都在web。config里配置,用于把要求路由到指定的HTTP解决器里履行。每一个解决器都是一个。NET类,用于解决指定的扩大。而这些解决器能够解决简朴到只要几行代码的Hello World,也能够解决庞杂到相似ASP。NET的页面以及履行WebService。就目前而言,仅仅须要了解扩大就是一种基础的映射机制,ASP。NET用它能够从ISAPI里获取一个要求,而后把要求路由到指定解决该要求的解决器中。
 

温馨提示:为不影响您的学业,来校区前请先电话咨询,方便我校安排相关的专业老师为您解答
  • 热门课程
姓名不能为空
手机号格式错误