Asp.Net构架(Http请求处理流程)
4.HttpHandler处理完以后,Http请求再一次回到Module,此时Module可以做一些某个工作已经完成了之后的事情。
NOTE:注意我用红色标识的字,然后回想一下:Asp.Net 中是不是有众多的 Inserting 、Inserted 之类成对的事件?其实,这里讲述的就是为什么Asp.Net可以将一个Insert操作分成前后两部分,然后再分别进行事件拦截的幕后原理。
问题:Http Module的作用是与应用程序级事件密切相关的。这里Inserting 、Inserted 之类成对的事件是控件级事件,此处举该例是否合适?
你把这段module源代码看了就清楚为什么是回到module了。—— AspModule_Do(){XXHandler.Do();}
事实也许就是那么简单 —— 也许就是你想的那样。
为什么这类程序没有main,而是context,那入口在哪?记得有个叫 嵌入式 httpserver的东西,代码量不多,看完了改个mvc框架,都明白了。
现在的其他的hostself httpserver庞大了点,那个啥子 Nancy 的早期版本结构也很简单,实现了mvc 框架版本的,你也可以去看看源代码。再结合想想iis干了什么,再结合一些http中的内容协定(不是传输协议哈,举个例重定向、IsModify等),上面的问题都不是问题。
事件处理其实是很简单的,它会在insert之前触发一下inserting事件,然后insert,然后再触发一下inserted事件。你应该是没写过自定义事件,所以才有此一问。 很多人只知道订阅事件,但从未自定义过事件。