我们在.NET 3.5 SP1上运行。
最近,在IE中,我们的一些用户偶尔开始出现“Out of Memory”错误。这不会一直发生。我设法复制了几次,我发现这个代码来自AjaxControlToolkit.Common.Common.js文件,导致无限循环: AjaxControlToolkit.TextBoxWrapper.registerClass( 'AjaxControlToolkit.TextBoxWrapper', Sys.UI.Behavior); AjaxControlToolkit.TextBoxWrapper.validatorGetValue = function(id){ var control = $ get(id); if(control&& control.AjaxControlToolkitTextBoxWrapper) { return control.AjaxControlToolkitTextBoxWrapper.get_Value();} return AjaxControlToolkit.TextBoxWrapper._originalValidatorGetValue(id);}
最后一行(调用_originalValidatorGetValue)基本上反复回调这个确切的函数,因为control.AjaxControlToolkitTextBoxWrapper是未定义的。
上面定义的函数是AjaxControlToolkit.TextBoxWrapper.get_Wrapper(控件),如果它不存在,可以用来创建包装器,但我不觉得我想改变框架,如果我是唯一一个在野外看到这个虫子的人。
并不总是会发生错误。当加载的第一个URL包含AJAX历史记录点时,似乎会发生这种情况。如果您打开一个页面并使用它,导致添加历史记录点,它可以正常工作。但是,如果将URL复制粘贴到另一个浏览器窗口,则会出现此问题。
因此,我的猜测是我正在做错误的历史记录控件没有正确设置包装器。即便如此,那里似乎存在无限循环。
任何想法/线索?
我填写了一份关于Microsoft Connect的错误报告。在填写并测试各种场景的同时,我注意到它在本地运行良好但不是远程。比较我的生产/开发环境,我注意到CombineScripts在本地是假的。将其部署到我的生产服务器似乎解决了这个问题。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=373171
答案 0 :(得分:1)
如果从ScriptManager中删除LoadScriptsBeforeUI ='false',则会解决此问题。
答案 1 :(得分:0)
您可能希望在Microsoft Connect上发布错误报告。