内存不足 - 无限循环 - ASP.NET AJAX框架

时间:2008-10-04 15:11:31

标签: asp.net asp.net-ajax

我们在.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

2 个答案:

答案 0 :(得分:1)

如果从ScriptManager中删除LoadScriptsBeforeUI ='false',则会解决此问题。

答案 1 :(得分:0)

您可能希望在Microsoft Connect上发布错误报告。