【发布时间】:2008-10-04 15:11:31
【问题描述】:
我们在 .NET 3.5 SP1 上运行。
最近,在 IE 中,我们的一些用户开始偶尔出现“内存不足”错误。这不会一直发生。我设法复制了几次,我发现 AjaxControlToolkit.Common.Common.js 文件中的这段代码导致了无限循环: AjaxControlToolkit.TextBoxWrapper.registerClass('AjaxControlToolkit.TextBoxWrapper', Sys.UI.Behavior);AjaxControlToolkit.TextBoxWrapper.validatorGetValue = 功能(ID){ var control = $get(id);if (control && control.AjaxControlToolkitTextBoxWrapper) { 返回 control.AjaxControlToolkitTextBoxWrapper.get_Value();} return AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(id);}
最后一行(调用_originalValidatorGetValue)基本上一遍又一遍地回调这个确切的函数,因为control.AjaxControlToolkitTextBoxWrapper 是未定义的。
在它上面定义的函数是 AjaxControlToolkit.TextBoxWrapper.get_Wrapper(control),如果它不存在,可以用来创建包装器,但如果我不觉得我想改变框架他是唯一一个在野外见过这种虫子的人。
错误并不总是发生。当加载的第一个 URL 包含 AJAX 历史记录点时,似乎会发生这种情况。如果您打开一个页面并使用它,导致添加历史记录点,它可以正常工作。但是如果你将 URL 复制粘贴到另一个浏览器窗口中,你就会遇到这个问题。
因此,我的猜测是我对未正确设置包装器的历史记录控件做错了。即便如此,那里似乎有一个无限循环。
有什么想法/线索吗?
我在 Microsoft Connect 上填写了错误报告。在填写并测试各种场景时,我注意到它在本地运行良好,但不是远程运行。比较我的生产/开发环境,我注意到 CombineScripts 在本地是错误的。将其部署到我的生产服务器似乎已经解决了这个问题。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=373171
【问题讨论】:
-
我遇到了同样的问题。仅在有多个 Web 服务器的登台和生产中发生。
标签: asp.net asp.net-ajax