我做了个例子,aspx的代码。很简单
<asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <br />
        <asp:UpdateProgress ID="UpdateProgress1" runat="server">
            <ProgressTemplate>
                    等待................................
            </ProgressTemplate>
        </asp:UpdateProgress>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                    aaa
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" 
            style="height: 26px" />
CS的代码
public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        System.Threading.Thread.Sleep(1200000);
    }
}但实际的运行结果是等待只出现了大概1分钟左右就消失了,实际上这时我跟了,还没Sleep完。
期待高手帮助,我在其它的项目中有类似的应用,所以很郁闷,不知错哪了,还是就是这样。

解决方案 »

  1.   

    在服务端处理HTTP请求时,有一个超时时间,默认90s,可以在IIS或者配置文件或者执行页面设置
    Server.ScriptTimeout = 1500;
    不过这纯闲得蛋疼,BS中一般都是尽可能地优化,以提高响应速度
      

  2.   

    谢谢,我试了一下,UpdateProgress还是在1分钟左右就消失了,我的应用是将pdf转成分页的flash。这个操作很费时间,在执行时我发现还没转完UpdateProgress就消失了,也就持续1分钟左右,这时转的过程还在继续。后来我干脆把相关的语句全去掉,就用sleep测试也是一样,因此就提出了这个问题。
      

  3.   

    sorry
    上面那几个控件其实是通过封装Ajax实现的,而xmlHttpRequest其实也一个超时时间,timeout属性和ontimeout事件
    你可以通过xmlHttpRequest+WCF实现长连接,也可以通过轮询[WebMethod]来显示进度,后者相对简单稳定