Sys.WebForms.Ошибка PageRequestManagerServerErrorException в IE8

#asp.net-ajax

#asp.net-ajax

Вопрос:

У меня есть 2 страницы в формате aspx. 1. Reporter.aspx 2. Report.aspx Внутри Reporter.aspx У меня есть IFRAME, и Report.aspx сохраняется внутри IFRAME после отправки Report.aspx на сервер (для загрузки отчета), я хочу сделать еще кое-что, например, показать некоторый прогресс или что-то в этом роде. Мои страницы выглядят следующим образом

Reporter.aspx: ………………..

 <body style="margin:2px;">
    <form id="Form1" runat="server">   
    <dx:ASPxPopupControl ClientInstanceName="LoadingPanel" ID="LoadingPanel" HeaderText="Progress" runat="server" ShowCloseButton="false" CloseAction="None"
        PopupHorizontalAlign="WindowCenter" EnableClientSideAPI="true" PopupVerticalAlign="WindowCenter" ShowShadow="true" Modal="true">
        <ContentCollection>
            <dx:PopupControlContentControl ID="PopupControlContentControl2" runat="server">
                <asp:Panel ID="Panel2" Height="75px" Width="275px" runat="server">
                    <center>
                        <div id="dvStatus" style="width:100%; font-family:Verdana; font-size:10px; color:Red;" >Loading....</div>
                        <div>
                            <img src="../Content/images/loading_big.gif" alt=""/>
                        </div>
                    </center>       
                </asp:Panel>
            </dx:PopupControlContentControl>
        </ContentCollection>                        
    </dx:ASPxPopupControl>
    </form>
    <div style="width:100%; overflow:hidden;">
        <iframe id="IFrame2" style="width:100%; border:0px; height:1125px; overflow:hidden;" frameborder="0" src="Report.aspx"></iframe>
    </div>
</body>
  

Report.aspx:
………………

 <body style="overflow: hidden;">                   
    <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="7200">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                    <div id="dvReportSettings" runat="server" style="float: left; width: 320px;" class="filterAndReport">                            
                            <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                                    <ContentTemplate>                                    
                                    </ContentTemplate>
                                </asp:UpdatePanel>
                        </div>
            <dx:ASPxButton ID="btnGenerateReport" OnClick="btnGenerateReport_Click" Height="35px"
                            Width="100%" runat="server" Text="Generate" AutoPostBack="false">
                                <ClientSideEvents Click="function(s,e){ValidatePage(s,e)}" />
                        </dx:ASPxButton>
        </ContentTemplate>
        </asp:UpdatePanel>                   
</body>
  

У меня есть кнопка с ID = «btnGenerateReport», и когда я нажимаю на нее, она загружает отчет. Для создания некоторых больших отчетов требуется почти 2 часа, и именно поэтому у меня есть
установите AsyncPostBackTimeout=»7200″ внутри asp:ScriptManager. Это отлично работает в разных браузерах, таких как FireFox, Google Chrome, Safari, но не в IE. Когда я
нажмите на кнопку сгенерировать с помощью браузера IE8, через несколько секунд отобразится следующая ошибка javascript:

Сведения об ошибке веб-страницы

Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; WOW64; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC; .NET4.0C; .NET4.0E) Временная метка: Ср, 25 мая 2011 10:47:06 UTC

Сообщение: Sys.WebForms.Исключение PageRequestManagerServerErrorException: при обработке запроса на сервере произошла неизвестная ошибка. Код состояния, возвращенный с сервера, был: 12002 Строка: 4723 Символ: 21 Код: 0 URI: http://localhost:64191/ScriptResource.axd?d=p4fjjEQSSdv063Ae96jd9UCqVNGWjRlsLyZLXU0H9gBYlcdCHSPhZBNLbZ-4XLN3zCzBInKdXuLlu4E1PtquQ3YdrPS-9wlk1EreB5wn-imBkTqz02jjBS_01qg6c4ObcqXGRK8Ejgyb3pvKkcBSH5V7xOadF8Jl4MSwWwtSDUBqxwNH0amp;t=fffffffff9d85fa6

Затем я просто ввел EnablePartialRendering =»false» в asp: ScriptManager и попытался посмотреть, вижу ли я какую-то разницу. После этого я нажимаю на кнопку создания отчета с помощью IE8 и обнаружил другую ошибку javascript всего через несколько секунд, например, 10-15. Вот ошибка:

Сведения об ошибке веб-страницы

Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; WOW64; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; MDDC; .NET4.0C; .NET4.0E) Временная метка: Ср, 25 мая 2011 г. 08:27:19 UTC

Сообщение: Неожиданный вызов метода или доступа к свойству. Строка: 264 Символ: 5 Код: 0 URI: res://ieframe.dll/httpErrorPagesScripts.js

Есть ли кто-нибудь, кто может помочь мне избавиться от этой ошибки IE. У меня серьезные проблемы.

Восстанавливает,

Мохин

Комментарии:

1. вы когда-нибудь находили решение?

Ответ №1:

Код состояния 12002 указывает на тайм-аут скрипта. Хотя вы установили максимальное время ожидания на клиенте (для асинхронного postbck), на стороне сервера есть собственный параметр ScriptTimeout в web.config или директиве page.

Также я не понимаю, зачем вам нужна вложенная панель обновления. Из вашего описания того, что вы делаете, одного должно быть достаточно. Разместите кнопку создания отчета вне панели обновления и добавьте элемент запуска на панель обновления для нажатия кнопки создания отчета.

Проверьте свои плагины в настройках IE, возможно, отключите их все.

Комментарии:

1. Ну, мне нужны вложенные панели обновления, потому что внутри внутренней панели обновления у меня есть компоненты фильтра отчета, которые будут обновлены при событии dropdown_change. чтобы установить время ожидания на стороне сервера, я добавил <HttpRuntime executionTimeout=»7200″ maxRequestLength =»4096″ useFullyQualifiedRedirectUrl=»false» minFreeThreads =»8″ minLocalRequestFreeThreads =»4″ appRequestQueueLimit = «100» /> в web.config, это даже не сработало Я добавил AsyncTimeout =»7200″ в директиву страницы Report.aspx, и это также не сработало

2. Я отключил все рекламные дополнения в своем IE, а также запустил IE в режиме БЕЗ рекламы и безуспешно. Затем я удалил все панели обновления и диспетчер сценариев со своей страницы и попытался запустить новую страницу и обнаружил, что после того, как я нажму на кнопку Создания отчета, произойдет обратная отправка, и через несколько секунд IE покажет проблему с подключением. Каждый раз он показывает одну и ту же ошибку

3. Привет, есть ли у кого-нибудь решения этой проблемы?

4. @Mohin Единственный другой опыт, который у меня был похож на вашу проблему, был с антивирусным программным обеспечением, в частности AVG. При запуске проектов в моем окне разработки с IE8 и IIS 7.5 у меня возникали всевозможные проблемы с подключением. Как только я удалил AVG, все эти проблемы исчезли. Я переключился на Microsoft Security Essentials.

5. Я использую Microsoft Security Essentials, поэтому проблем возникнуть не должно