저는 ASP.NET과 ASP.NET MVC 뒤에있는 "plumbing"을 더 잘 이해하려고합니다. 나는 많은 도움이 된 this page을 읽었습니다. 지금까지 모든 ASP.NET 사이트에는 System.Web.HttpApplication에서 상속받은 클래스가 있습니다. HttpApplication은 BeginRequest, AuthorizeRequest, End Request 등과 같은 HttpModule과 HttpHandlers를 트리거하는 일련의 이벤트를 가지고 있습니다. HttpModules과 HttpHandlers는 현재 HttpContext를 읽고 쓰고 있습니다.ASP.NET MVC는 ASP.NET에 어떻게 연결되어 있습니까?
ASP.NET에서 사용하는 HttpApplication 클래스를 어떻게 알 수 있습니까? 내 응용 프로그램에는 Global.asax 파일의 일반적인 MvcApplication 클래스가 있습니다. 그러나 MVC와 관련된이 클래스에는 아무것도 표시되지 않습니다. 또한이 클래스를 "응용 프로그램"으로 할당하는 설정은 어디에서도 볼 수 없습니다. ASP.NET은 HttpApplication 클래스를 만들 때 Global.asax라는 파일을 항상 찾습니다. 아니면 ASP.NET은 내 어셈블리에서 HttpApplication으로부터 상속받은 모든 클래스를 찾습니다.
또한 모듈과 처리기를 어떻게 사용해야하는지 어떻게 알 수 있습니까? 위에서 언급 한 페이지에서는 web.config를 통해 핸들러와 모듈 및 설정을 지정한다고 설명했습니다. 하지만 내 ASP.NET MVC 응용 프로그램에는 web.config에 이러한 설정이 없습니다.
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.ApplicationInstance.Modules 내가 볼을 선택하면? 마찬가지로 HttpContext.Current.Handler를 확인하면 System.Web.Mvc.MvcHandler
으로 설정되어 있음을 알 수 있습니다.
전체 기사 링크는 정말 잘 요약되어 있습니다. 대답이없는 부분에 추가하기 위해 ASP.NET 런타임은 루트 Global.asax 파일에서 HttpApplication 인스턴스를 만듭니다. – marcind
감사합니다. marcind - 전 그 질문의 일부를 간과했습니다. –