#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, поэтому проблем возникнуть не должно