2009-02-21 4 views
6

"www"URL (http://example.com/)없이 "www"URL (http://www.example.com/)을 사용하지 않고 리디렉션하는 모듈을 사용하는 웹 앱을 만들었습니다. 그러나 내가 HttpModule을 구현할 수있는 권한이없는 공유 호스팅 서버에서 Global.asax 파일과 동일한 모듈 코드를 시도했습니다. 그게 효과가있어!HttpModule과 Global.aspx의 성능 차이는 무엇입니까?

다음 (Application_BeginRequest()) 이벤트를 사용하여 HttpModule 기능을 구현했습니다.

void Application_BeginRequest() 
{ 
    //module code 
} 

모듈 및 응용 프로그램

는 Global.asax 파일에서 잘 제대로 작동하지만 성능에 대해 걱정입니다.

우리가 asp.net에서 HTTPModule을 사용하는 이유는 Global.asax 파일을 사용하여 구현할 수있는 경우입니다. 둘 사이에 성능 차이가 있습니까? 또는 HttpModule 대신 Global.asax 파일을 사용할 때 걱정해야 할 차이점은 무엇입니까 ??

설명해주세요!

답변

4

Global.asax는 HTTPApplication에서 상속되며 HTTPModules는 IHTTPInterface를 구현해야합니다.
HTTPModules Init 메서드는 전달 된 HTTPApplication 개체를 가져옵니다.
Init 메서드에서 HTTPApplication 이벤트에 연결할 수 있습니다.

가능하면 어디에서나 HTTPModules을 사용하는 것이 좋습니다.
특히 고객이 귀사의 global.asax를 자신의 것으로 대체 할 수있는 축소 포장 된 소프트웨어를 만드는 경우.

+0

나는 Global.asax를 통해 HTTPModules를 선호하지만 HttpModule을 구현하려고 할 때 내 공유 호스팅 서버에서 "500 Insternal Server Error"를 제공합니다. 그것이 내가 Global.asax와 함께 갈 이유입니다. – Prashant

+0

한 가지 더요, 특히 고객이 귀사의 global.asax를 자신의 것으로 대체 할 수있는 축소 형 소프트웨어를 만들지는 않을 것입니다. " 이 줄은 당신 대답입니까? "축소 포장 된 소프트웨어"란 무엇이며 고객이 global.asax 파일을 대체하는 방법은 무엇입니까? – Prashant

+0

런타임에 Global.asax는 HttpApplication 기본 클래스에서 파생 된 동적으로 생성 된 .NET Framework 클래스로 구문 분석되고 컴파일됩니다. 소프트웨어 패키지 (축소 포장)를 판매하는 고객은 global.asax를 변경할 수 있습니다. –

2

거의 차이가 없습니다. HTTPModule의 요점은 명확성과 분리를위한 것입니다. 종종 사람들은 global.asax로 얻을 수없는 몇 가지 HTTPModule을 통해 요청을 처리합니다.

+1

좋습니다. 두 가지 방법 모두 성능면에서 차이가 없음을 의미합니다. Caz는 저에게 중요합니다 :) – Prashant

관련 문제