2011-11-05 2 views
0

웹 사이트에서 atm을 사용하고 싶기 때문에 온라인에서 HttpModule을 만드는 방법에 대한 예제를 검색했습니다. . 내가 발견 한 모든 예제는 꽤 단순하지만, 구현하기가 더 어려웠다.웹 사이트 용 IIS7 사용자 정의 HttpModule - 방법

여기 샘플 HttpModule을 것입니다 :

모듈을 구현
public class SampleModule : IHttpModule 
{ 
    DateTime beginrequest; 
    public void Init(HttpApplication app) 
    { 
     // register for events created by the pipeline 
     app.BeginRequest += new EventHandler(this.OnBeginRequest); 
     app.EndRequest += new EventHandler(this.OnEndRequest); 
    } 
    public void Dispose() { } 
    public void OnBeginRequest(object o, EventArgs args) 
    { 
     // obtain the time of the current request 
     beginrequest = DateTime.Now; 
    } 
    public void OnEndRequest(object o, EventArgs args) 
    { 
     // get the time elapsed for the request 
     TimeSpan elapsedtime = DateTime.Now - beginrequest; 
     // get access to application object and the context object 
     HttpApplication app = (HttpApplication)o; 
     HttpContext ctx = app.Context; 
     // add header to HTTP response 
     ctx.Response.AppendHeader("ElapsedTime", elapsedtime.ToString()); 
    } 
} 

은과 같이 있었어야 (모든 예제에서 내가 발견) :

<configuration> 
    <system.web> 
     <httpModules> 
      <add name="TimeElapsedModule" type="SampleModules.SampleModule,SampleModules "/> 
     </httpModules> 
    </system.web> 
</configuration> 

하지만 IIS7이 밤은 좋아! IIS7에서 당신은 수행해야합니다

<system.webServer> 
     <modules> 
      <add name="TimeElapsedModule" type="SampleModules.SampleModule,SampleModules"/> 
     </modules> 
    </system.webServer> 

지금, 그것을 파악 후, 난에 대한 해결책을 찾을 수가 해달라고 또 다른 문제가 발생했습니다. 내 모듈은 다른 클래스 내부에 살고 있기 때문에, 논리적

Could not load file or assembly 'SampleModules' or one of its dependencies. The system cannot find the file specified. 

: 나는 다음과 같은 오류를 얻고있다. 누군가가 내가이 문제를 해결하도록 도울 수 있다면 행복 할 것이고 나는이 게시물이 동료 프로그래머에게 도움이되기를 희망한다.

답변

0

네임 스페이스와 일치하는 클래스 이름 대신 네임 스페이스를 사용하는 유형으로 나옵니다. 내 Web.config의 다른 말로하면 나는

<add type="SampleModules.SampleModule,SampleModules" name="TimeElapsedModule" /> 

대신

<add type="Test.SampleModules.SampleModule,App_Code" name="TimeElapsedModule" /> 
했다