2011-02-28 1 views
2

httpmodule을 가지고 있지만 .NET 4 응용 프로그램을 마이그레이션하면 일부 스트레인 동작이 발생합니다. BeginRequest 이벤트는 일부 요청에 대해서는 실행되지 않습니다 (그러나 다른 요청에서는 발생합니다). - 지금까지 해고되지 않았던 시점에 패턴을 처리하지 못했습니다.내 httpmodule에서 BeginRequest 이벤트가 실행되지 않습니다.

EndRequest 이벤트가 항상 발생하는 것 같습니다.

나는이 문서 발견 http://connect.microsoft.com/VisualStudio/feedback/details/535999/beginrequest-event-is-not-raised-in-my-http-module-on-iis7

을하지만 마이크로 소프트의 유일한 제안은 항목이의 system.webServer/모듈 섹션에서 할 필요가있을 것 같다 - 나는 이미 자리에 있다고합니다.

나는 .NET 및 MVC 아주 새로운 해요 - 사람이 어떻게이 문제의 원인을 추적 할 수있는 방법을 어떤 제안이 있습니까?

많은 도움과 제안을 부탁드립니다.

+0

초기화 코드가 실제로 실행됩니까? – CodingBarfield

답변

3

나는 항상 불이 나지 않는 이유를 알아 내려고 꽤 많은 시간을 보냈습니다! 여기에 대한 대답은 다음과 같습니다. 호출중인 요청과 관련하여 업데이트 패널이 필요합니다. 예를 들어 시작 및 끝 요청 핸들러를 호출해야하는 버튼이 있다면 버튼 주위에 Ajax 업데이트 패널을 배치하고 "UpdateMode"를 "Always"로 설정합니다. 이것은 이러한 자바 스크립트 이벤트가 asynchronos 포스트 백 전후에만 실행된다는 사실 때문입니다. Ajax 업데이트 패널은 asynchronos 호출을 제공합니다.

예 :

<script type="text/javascript" language="javascript"> 
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 
    function BeginRequestHandler(sender, args) { 
     //Some code 
    } 
    function EndRequestHandler(sender, args) { 
     //Some code 
    } 
</script> 

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 
<asp:UpdatePanel runat="server" ID="UpdatePanel6" UpdateMode="Always"> 
    <ContentTemplate> 
     <asp:Button runat="server" ID="btnGo" Text="Go" OnClick="btnGo_OnClick"/>  
    </ContentTemplate> 
</asp:UpdatePanel> 

이 asp.net에서 올바른 방법이 있습니다. MVC에 대해 너무 확신하지 못합니다. 희망이 도움이됩니다.

+0

'btnGo_OnClick'메소드는 cs 파일에서와 같이 표시됩니다. –