2008-10-04 3 views
5

Мы работаем на .NET 3.5 SP1.Недостаточно памяти - бесконечная петля - ASP.NET AJAX Framework

Недавно в IE некоторые из наших пользователей начали получать ошибки «Из памяти» время от времени. Это происходит не всегда. Мне удалось повторить его пару раз, и я обнаружил, что этот код из файла AjaxControlToolkit.Common.Common.js вызывает бесконечный цикл: AjaxControlToolkit.TextBoxWrapper.registerClass ('AjaxControlToolkit.TextBoxWrapper', Sys.UI. Поведение); AjaxControlToolkit.TextBoxWrapper.validatorGetValue = функции (идентификатор) { управления варом = $ прибудут (идентификатор), если (управление & & control.AjaxControlToolkitTextBoxWrapper) { возвращения control.AjaxControlToolkitTextBoxWrapper.get_Value();} возвращения AjaxControlToolkit .TextBoxWrapper._originalValidatorGetValue (id);}

Последняя строка (которая вызывает _originalValidatorGetValu e) в основном повторяет эту точную функцию снова и снова, потому что control.AjaxControlToolkitTextBoxWrapper не определен.

Функция, определенная непосредственно над ней, является AjaxControlToolkit.TextBoxWrapper.get_Wrapper (control) и может использоваться для создания оболочки, если она не существует, но я не чувствую, что хочу изменить структуру if Я единственный, кто видел эту ошибку в дикой природе.

Ошибка не всегда возникает. Похоже, что когда первый загруженный URL-адрес содержит точку истории AJAX. Если вы открываете страницу и играете с ней, заставляя добавлять точки истории, она отлично работает. Но если вы скопируете URL-адрес в другие окна браузера, вы получите эту проблему.

Поэтому я предполагаю, что я делаю что-то неправильно с элементом управления историей, который не настраивает обертки должным образом. Тем не менее, там есть бесконечный цикл.

Любые идеи/подсказки?

Я заполнил отчет об ошибке в Microsoft Connect. Заполняя его и тестируя различные сценарии, я заметил, что он работает нормально локально, но не удаленно. Сравнивая мою среду разработки/разработки, я заметил, что CombineScripts был ложным локально. Развертывание этого на моем рабочем сервере, похоже, решило проблему.

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=373171

+0

У меня такая же проблема. Только происходит в стадии постановки и производства, где имеется более одного веб-сервера. – 2009-12-02 17:04:41

ответ

1

Если вы удалите LoadScriptsBeforeUI = 'false' из ScriptManager, эта проблема будет решена.

+1

Ваши источники касательно этого решения? – 2010-09-04 16:42:48

Смежные вопросы