ASP.NET MVC入口点

Bru*_*mmy 2 asp.net environment dll asp.net-mvc

关于ASP.NET MVC应用程序执行的快速问题.

据我所知,MVC应用程序的项目被编译成DLL文件.在MVC应用程序环境中,是否有可执行程序链接在这些DLL中?是否有生成的程序本质上是使用DLL的MVC引擎,它位于服务器上并在域URL获取请求时被调用?

我可能错了,但这就是我在脑海里想象的:)

Tra*_*s J 6

幕后有很多工作要做.在非常广泛的层面上,对URL进行请求,服务器返回一个字符串.

到达那里是有趣的部分.

首先,有一个服务器设置.我们假设它正在使用IIS.IIS暴露了"默认应用程序".可以通过服务器的IP地址访问此应用程序(通常通过防火墙进行端口转发).

应用程序的信息保存在IIS中引用的文件夹中.该文件夹结构包含.dll,图像,脚本,.cshtml,配置文件等..dll共享应用程序名称的是启动应用程序的应用程序.其中.dll包括asp.net MVC应用程序.

应用程序仅在应用程序池处于活动状态时运行.应用程序池仅在请求后的某个可变时间段内处于活动状态,如果它处于非活动状态,则请求必须等待池启动并启动应用程序.

启动应用程序意味着执行.dll.这也将级联到执行相关的dll,具体取决于配置文件和参考设置.最后,我们来到asp.net MVC的起点.

asp.net mvc应用程序将首先实例化一个路由类,它是整个条目的基础.此路由类接受请求字符串,根据路由字典中的规则将其分解,然后使用反射来实例化相关控制器并调用相关方法.

一旦动作方法执行,它将从调用中注入参数并执行任何操作 - 命令披萨.服务器在订购披萨时会想到.订购后,该方法返回一个视图.该视图只是通过订购披萨来组成信息的一种方式.它仍在执行服务器端.一旦视图完成,以及从订购披萨方面传递的信息,整个返回值将写入响应流.

此时,响应将在浏览器中呈现,执行的任何脚本都会被执行,并且希望在不久的将来将比萨饼放入烤箱中.

http://www.dotnet-tricks.com/Content/images/mvc/ASP.NETMVC5Pipeline.png