我有一个大约需要15-20秒执行的过程,最后它会更新一个更新面板来刷新一个gridview
但它一直让我带来这个错误:
Microsoft JScript运行时错误:Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误。服务器返回的状态代码为:12002
我到处寻找答案,他们一直指向这个
httpRuntime maxRequestLength="1024000"executionTimeout="999999"和ToolkitScriptmanager中的AsyncPostBackTimeout="360000"
这对我不起作用,有人能提出一些对我有帮助的建议吗?以下是部分代码:
<%@ Page Title="" ....AsyncTimeout="36000" EnableEventValidation="false" ValidateRequest="false" %>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" AsyncPostBackTimeout ="360000" >
</asp:ToolkitScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="BtnGeneraPed" runat="server" Text="GP" Height="45px" Width="148px"/>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
<table>
<tr><td><img alt="Cargando" src="../images/loading.gif" /></td></tr></table>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:GridView ID="GV" runat="server" BackColor="White"
......
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
所以在将近两天后,我终于可以弄清楚了。。。
非常简单。。。我在一台装有Windows XP和IE 8的机器上测试和开发了这个……我在Firefox和Chrome中测试了它,结果是肯定的,没有错误的
该问题与internet explorer 8的ReceiveTimeout设置有关。它是为了缩短
解决方案在本文中:
http://intersoftpt.wordpress.com/2009/06/23/resolve-page-cannot-be-displayed-issue-in-ie8/
在发布网站的web服务器上,我在IE 8中遇到了类似的问题(在Chrome中更进一步),只是没有ReceiveTimeout注册表项可删除。Chrome最终还是失败了,但它与这个问题无关。。。我想IE 8似乎更挑剔。我使用Timer_Tick来更新UpdatePanel。
发现我的web.config文件中需要一些引用:
<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
<namespaces>
<clear/>
<add namespace="System" />
</namespaces>
<compilation targetFramework="4.0" debug="false">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
</compilation>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
您可以在C:\Program Files(x86)\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025的web.config中找到这些部分。