IE8上的Sys.WebForms.PageRequestManagerServerErrorException错误

时间:2011-05-25 10:59:18

标签: asp.net-ajax

我有2个.aspx页面。 1. Reporter.aspx 2. Report.aspx 在Reporter.aspx里面我有一个IFRAME,并且在将Report.aspx提交给服务器(加载报告)后,Report.aspx保存在IFRAME中,我想做另一件事,比如显示一些进展或类似的东西。我的页面如下所示

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个小时才能生成,这就是我的原因 在asp:ScriptManager中设置AsyncPostBackTimeout =“7200”。它可以在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) 时间戳:2011年5月25日星期三10:47:06 UTC

消息:Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误。从服务器返回的状态代码是:12002 行:4723 查尔:21 代码:0 URI:http://localhost:64191/ScriptResource.axd?d=p4fjjEQSSdv063Ae96jd9UCqVNGWjRlsLyZLXU0H9gBYlcdCHSPhZBNLbZ-4XLN3zCzBInKdXuLlu4E1PtquQ3YdrPS-9wlk1EreB5wn-imBkTqz02jjBS_01qg6c4ObcqXGRK8Ejgyb3pvKkcBSH5V7xOadF8Jl4MSwWwtSDUBqxwNH0&t=fffffffff9d85fa6

然后我把EnablePartialRendering =“false”放到asp:ScriptManager中,试着看看我是否能看到一些区别。在此之后,我点击生成报告按钮使用 IE8并在10-15之后的几秒钟内发现了另一个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) 时间戳:2011年5月25日星期三08:27:19 UTC

消息:对方法或属性访问的意外调用。 行:264 查尔:5 代码:0 URI:res://ieframe.dll/httpErrorPagesScripts.js

是否有人可以帮助我摆脱这个IE错误。我遇到了严重的麻烦。

Regrads,

Mohin酒店

1 个答案:

答案 0 :(得分:0)

状态代码12002建议脚本超时。虽然您已在客户端上设置超时(对于异步postbck),但服务器端在web.config或page指令中具有自己的ScriptTimeout设置。

此外,我不明白为什么需要嵌套更新面板。从你对你正在做的事情的描述应该是足够的。在更新面板外部生成“生成报告”按钮,并在“生成报告”按钮单击的更新面板中添加触发元素。

检查IE选项中的插件,可能会禁用所有插件。