Событие BeginRequest не сработало в моем httpmodule - PullRequest
2 голосов
/ 28 февраля 2011

У меня есть httpmodule, но с момента миграции приложения .NET 4 испытывает странное поведение.Событие BeginRequest не запускается по некоторым запросам (но оно происходит по другим) - мне до сих пор не удавалось определить схему, когда это происходит и не запускается.

Событие EndRequest всегдапохоже, что запущен.

Я нашел эту статью: http://connect.microsoft.com/VisualStudio/feedback/details/535999/beginrequest-event-is-not-raised-in-my-http-module-on-iis7

, но единственное предложение от Microsoft, похоже, заключается в том, что необходимо сделать запись в разделе system.webServer / modules -У меня это уже есть.

Я новичок в .net и mvc. У кого-нибудь есть предложения, как я могу отследить причину этой проблемы?

любая помощь / предложения высоко ценится.

1 Ответ

3 голосов
/ 25 июля 2011

Я потратил довольно много времени, пытаясь взломать, почему это не всегда срабатывает!Вот ответ: Вам нужна панель обновления вокруг вызываемого запроса.Так, если у вас есть кнопка, например, которая должна вызывать обработчики запросов начала и конца, тогда вы размещаете панель обновления Ajax вокруг кнопки и устанавливаете «UpdateMode» в «Always».Это связано с тем, что эти события JavaScript запускаются только до и после асинхронных обратных передач.Панель обновления Ajax будет обеспечивать асинхронный вызов.

Пример:

<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.Надеюсь, это поможет.

...