Asp.net 如何在很长的服务器操作期间更新状态标签?

Asp.net 如何在很长的服务器操作期间更新状态标签?,asp.net,ajax,webforms,Asp.net,Ajax,Webforms,我有一个服务器操作,通常需要大约15分钟才能完成。我想在操作过程中向用户传达操作的各个阶段 这是我的表格代码: <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" > <ContentTemplat

我有一个服务器操作,通常需要大约15分钟才能完成。我想在操作过程中向用户传达操作的各个阶段

这是我的表格代码:

 <asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
    <ContentTemplate>
        <asp:Timer ID="Timer1" runat="server" Interval="300" ontick="Timer1_Tick">
        </asp:Timer>
        <asp:Label ID="lbl_Status" runat="server" Text=""></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>

</div>

<asp:FileUpload ID="upl_UserList" runat="server" />

<p>

    <asp:Button ID="btn_Update" runat="server" Text="Update Users" 
        onclick="btn_Update_Click" />

</p>
</form>
在用户单击“更新”按钮的过程中,浏览器会被卡住,等待服务器响应。这会导致标签不更新

我应该如何解决这个问题,我应该使用iFrame吗?

添加此代码

    <Triggers>
     <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
   </Triggers>

在“更新”面板后放置代码并移动计时器:

  <asp:Timer ID="Timer1" runat="server" Interval="300" ontick="Timer1_Tick">
  </asp:Timer>

  <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
          <asp:Label ID="lbl_Status" runat="server" Text=""></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>


尝试将处理转移到单独的服务,在web请求中运行15分钟的处理是个坏主意。我认为最终这将是一个自动功能,不需要用户输入。目前,我们正在使用一个控件来调试脚本。
  <asp:Timer ID="Timer1" runat="server" Interval="300" ontick="Timer1_Tick">
  </asp:Timer>

  <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
          <asp:Label ID="lbl_Status" runat="server" Text=""></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>