加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC如何连接到ASP.NET?

发布时间:2020-12-15 19:03:51 所属栏目:asp.Net 来源:网络整理
导读:我试图更好地了解ASP.NET和ASP.NET MVC背后的“ plumbing”.我一直在阅读 this page,这帮助了很多.从我迄今为止所了解的每个ASP.NET网站都有一个继承自System.Web.HttpApplication的类.然后HttpApplication会有一系列触发HttpModules和HttpHandler的事件,如B
我试图更好地了解ASP.NET和ASP.NET MVC背后的“ plumbing”.我一直在阅读 this page,这帮助了很多.从我迄今为止所了解的每个ASP.NET网站都有一个继承自System.Web.HttpApplication的类.然后HttpApplication会有一系列触发HttpModules和HttpHandler的事件,如BeginRequest,AuthorizeRequest,End Request等等.然后HttpModules和HttpHandlers会从当前的HttpContext读取和写入.

ASP.NET如何知道使用什么HttpApplication类?我的应用程序在Global.asax文件中具有典型的MvcApplication类.但是我在这个类中没有看到有关MVC的内容.在任何将此类分配为“应用程序”的地方,我也看不到任何设置. ASP.NET只是总是寻找一个名为Global.asax的文件来弄清楚要创建的HttpApplication类?或者ASP.NET只是在我的程序集中寻找继承自HttpApplication的任何类?

另外,它如何知道要使用的模块和处理程序?我上面提到的页面指出了web.config中的处理程序和模块以及设置.但是我的ASP.NET MVC应用程序在其web.config中没有这些设置?

如果我在我的一个动作方法中设置了一个断点,并检查HttpContext.Current.ApplicationInstance.Modules,我看到以下内容:

OutputCache
Session
WindowsAuthentication
FormsAuthentication
PassportAuthentication
RoleManager
UrlAuthorization
FileAuthorization
AnonymousIdentification
Profile
ErrorHandlerModule
ServiceModel
UrlRoutingModule-4.0
ScriptModule-4.0
__DynamicModule_System.Web.WebPages.WebPageHttpModuleDefaultAuthentication

这些指定在哪里?同样,如果我检查HttpContext.Current.Handler我可以看到它设置为System.Web.Mvc.MvcHandler.

解决方法

当第一个用户访问您的网站时:

1)它加载由应用程序承载的所有web.config所指定的所有Http模块.

2)如果系统启用了ASP.NET MVC,则global web.config会将UrlRoutingModule注册到请求流程中.

现在,您在global.asax(如标准MvcApplication)中从HttpApplication派生的类被编译到dll中.铭记这一点…

5)ASP.NET运行时扫描YourApplication.dll以获取源自HttpApplication的类,并执行其许多方法(例如Application_Start).

6)当使用惯用的ASP.NET MVC MapRoute扩展方法创建路由时,它将该路由与MvcRouteHandler相关联.

7)UrlRoutingModule(从步骤2)使用routing handler来选择ASP.NET将用于处理该路由上的传入请求的http处理程序.

你可以找到the full story here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读