ASP.NET 计时器仅在调试模式下工作



我在更新面板中使用 ajax 计时器控件。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Timer ID="Timer1" runat="server" Interval="1000" OnTick="Timer1_Tick"></asp:Timer>            
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>

计时器应每秒使用当前日期时间更新标签。

    protected void Timer1_Tick(object sender, EventArgs e)
    {
        Label1.Text = DateTime.Now.ToString();
    }

在调试模式下一切正常,但是当我在没有调试器 (CTRL+F5) 的情况下运行站点时,或者如果我将站点部署到我的服务器,计时器不会滴答作响。

但是当我将"debug=true"添加到web.config时,一切正常。即使在我的服务器上。

<compilation targetFramework="4.0" debug="true">

Internet Explorer 在 ScriptResource.axd 中抛出异常"对象不支持此操作"。

如何解决此问题?

编辑:我想我已经解决了。

我不知道为什么,但有两件事可以解决这个问题:

    使用 ScriptManager
  • 而不是 ToolScriptManager
  • 将 ToolScriptManager 与 CombineScripts="false" 一起使用

我不知道这是否是一个错误。

也许有人可以解释一下。

最新的 AJAX 控件工具包中似乎有一个错误 - 我自己刚刚遇到过这个错误 - 似乎唯一的选择是降级到以前的版本。

https://ajaxcontroltoolkit.codeplex.com/workitem/27639 和 http://forums.asp.net/t/1962717.aspx?Timer+and+Script+Combining+w+ToolkitScriptManager

为了解决当前问题,我必须在调试模式下运行,直到我可以降级和测试。

这对

我有用。

Using the ToolScriptManager with CombineScripts="false"

最新更新