Почему ASP.NET вызывает ошибку «Операция прервана» в IE7? - PullRequest
5 голосов
/ 05 ноября 2008

Я читал множество постов в блогах, в которых рассказывается о причине и решении ошибки «Операция прервана» в IE. Недавно я создал приложение, которое иногда выдает эту ошибку для некоторых пользователей.

Позвольте мне объяснить подробно.

Приложение представляет собой веб-приложение .NET 2.0, ASP .NET и C #, созданное в VS 2008. Оно использует веб-элементы управления ComponentOne вместе со стандартными элементами управления Visual Studio.

На одной из веб-страниц я позволяю пользователям вводить ввод в наборе элементов управления вводом ComponentOne Web, которые затем добавляются в коллекцию. Коллекция связана с ретранслятором, и каждый раз, когда в коллекцию вносится новая запись, ретранслятор восстанавливается. Если пользователи удаляют запись из повторителя (с помощью кнопки), коллекция обновляется и возвращается к повторителю.

Когда приложение было отправлено конечным пользователям для тестирования, некоторые из них пожаловались на то, что у них возникает ошибка «Операция прервана» при просмотре или работе на этой странице. Это когда-нибудь произойдет в тот момент, когда пользователь пытается загрузить страницу, и в другое время, когда он добавляет / отбрасывает элементы в коллекцию.

Эти пользователи имеют IE7 без сторонних надстроек, кроме Adobe PDF и панели инструментов Google. Ошибка не возникает в FireFox или Google Chrome. Это также не происходит в IE8 Beta 2.

Когда я или мой коллега-разработчик пытаемся повторить ошибку, используя IE7 на наших машинах, мы просто не можем этого сделать. Независимо от того, что мы пытаемся, мы не получаем эту ошибку.

Я также пробовал IE6 и не получаю ошибку.

Версия IE7 одинакова для всех.

Не уверен, как решить эту проблему. Все посты блога, посты на форуме рассказывают о JavaScript и изменении элементов тела, но не уверены, как это относится ко мне, и даже если это так, почему поведение отличается в двух браузерах IE7?

Любые предложения / помощь приветствуются.

Ответы [ 3 ]

6 голосов
/ 05 ноября 2008

В тонкостях вашей коллекции и привязок введено условие гонки .

Операция Прервана - это неясная ошибка IE, возникающая при добавлении DOM до завершения загрузки страницы.

Ошибка операции прервана

Обратитесь к этому вопросу: Что такое ошибка "Операция прервана" в Internet Explorer?

По сути, это не проблема asp.net, но в вашем случае asp.net не может контролировать порядок выполнения из-за того, как вы написали привязку данных. Другими словами, в зависимости от порядка, в котором ресурсы загружаются и выполняются (какой ток не контролируется), условие существует.

Между прочим, может быть сложнее воспроизвести условие в вашей среде разработки, если у вас есть некоторые из этих ресурсов , кэшированные на внешнем интерфейсе, или если они загружаются быстрее (будучи доступна в локальной сети ), что объясняет, почему у вас возникают проблемы с обнаружением ошибки.

0 голосов
/ 06 ноября 2008

Я понимаю, почему может возникнуть ошибка. Однако я не вижу себя, делающего что-то подобное. У моего повторителя нет включенного режима просмотра, и я просто делаю новую привязку с использованием коллекции.

Как привязка данных ретранслятора соотносится с динамическим добавлением чего-либо?

0 голосов
/ 06 ноября 2008

См. Отчет об ошибке здесь:

http://webbugtrack.blogspot.com/2008/08/bug-404-operation-aborted-in-ie.html

короче:

  1. Файл HTML анализируется

  2. выполняется сценарий

  3. Исполняемый скрипт пытается (добавить или удалить) элемент от незамкнутого предка в дереве разметки (исключая непосредственного родителя элемента скрипта)

Хорошей новостью является то, что частично исправлено в IE8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...