切尔斯基

http://liguanglei.name
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.Net 备忘

Posted on 2012-03-11 12:15  chelsea  阅读(180)  评论(0编辑  收藏  举报

IIS 5

IIS (inetinfo.exe) -> ASP.Net ISAPI (aspnet_isapi.dll) -> ASP.Net worker process (aspnet_wp.exe) -> ...

 

IIS 6 经典模式

IIS (inetinfo.exe) -> ASP.Net worker process (w3wp.exe, application pool) -> ASP.Net ISAPI (aspnet_isapi.dll) -> AppDomain -> HttpRuntime.process(new HttpWorkerRequest()) -> HttpApplicationFactory.GetApplicationInstance() -> HttpApplication.BeginProcessRequest(new HttpContext(workerRequest)) -> IHttpModule -> IHttpHandlerFactory -> IHttpHandler

 

IIS 7 集成模式 vs. 经典模式

IIS是管道和过滤器, ASP.Net也是管道和过滤器, 干脆就别绕了, 直接合了吧, 就是集成模式. 在经典模式中, .Net的HttpModule只能在ASP.Net介入处理后才发挥作用, 而在集成模式中, HttpModule不仅能为ASP.Net应用提供支持, 也能为其它应用如PHP等提供支持. 

 

前台线程 vs. 后台线程

Thread.IsBackground = true, 应用程序的退出必须等待所有前台线程退出, 不必等后台线程.

 

工作者线程 vs. IO线程

ThreadPool本身是为了性能, 两种线程的区分也是为了性能, ThreadPool提供了对两种线程的区别对待.

 

权限

<system.web>

<processModel username="" password="" />

<identity impersonate="true" username="" password="" />

</system.web>

 

IDE 支持

比如Web Deployment Project

 

复杂基于简单

理解管道模型后, 再去看附加的其它功能, 比如Security等. 而其它的组件则解决不能用管道模型解决的问题, 如Application Pool解决资源分配问题. 而有些复杂又可有可无的, 实在不应该加进来增加复杂度, 比如membership等.