ASP.NET Timer仅在调试模式下工作

jim*_*mbo 6 c# asp.net ajax timer scriptmanager

我在更新面板中使用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>
Run Code Online (Sandbox Code Playgroud)

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

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

在调试模式下一切正常,但是当我运行没有调试器的站点(CTRL + F5)或者我将站点部署到我的服务器时,计时器不会打勾.

但是当我在web.config中添加"debug = true"时,一切正常.甚至在我的服务器上.

<compilation targetFramework="4.0" debug="true">
Run Code Online (Sandbox Code Playgroud)

Internet Explorer在ScriptResource.axd中引发异常"对象不支持此操作".

我该如何解决这个问题?

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

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

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

我不知道这是不是一个bug.

也许有人可以解释一下.

小智 2

最新的 AJAX Control Toolkit 中似乎存在一个错误 - 我自己刚刚遇到过这个错误 - 似乎唯一的选择是降级到以前的版本。

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

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