VS2010 + IE8 Проблемы отладки - Элемент не найден - PullRequest
4 голосов
/ 15 сентября 2010

Я испытываю большие трудности при попытке отладки с vs2010 и IE8, хотя я думаю, что проблема более специфична для IE8.При запуске сеанса отладки 9 раз из 10 у меня возникнет следующая проблема.Вкладка IE говорит о подключении .. - после 5 секунд ожидания я получу ошибку в VS, говорящую, что элемент не найден.Даже когда я нажимаю кнопку ОК, чтобы закрыть сообщение об ошибке, в окне IE все еще отображается подключение ... Затем мне придется завершить процесс IE, чтобы иметь возможность закрыть IE, чтобы повторить попытку.Однако иногда мне везет, и это начинается.Но все это настолько случайно, что я понятия не имею, с чего начать.Одна вещь, которую я заметил, состоит в том, что у меня всегда запущено 2 процесса IE, хотя открыто только одно окно.Один имеет небольшой размер 100 КБ, я полагаю, что это какой-то помощник.

Я использую статический порт со встроенным сервером WebDev.

Если у кого-то были подобные проблемы, пожалуйста,Я знаю, как вы решили это.Это сводит меня с ума!спасибо

Ответы [ 6 ]

2 голосов
/ 27 декабря 2010

Звучит как проблема с восстановленной вкладкой. Перейдите на Свойства обозревателя (ALT, T, O), перейдите на вкладку «Дополнительно» , затем в раздел «Просмотр» и снимите флажок «Включить автоматическое восстановление после сбоя» .

Вы также можете попробовать добавить «localhost» в качестве доверенного сайта или (что еще хуже :) отключить «Защищенный режим» для всех зон на вкладке «Безопасность» (по крайней мере для отладки) .

Если это не решит проблему, это может быть недоступный порт .

Отключите все программные брандмауэры, проверьте netstat -a в командной строке, чтобы убедиться, что необходимый порт прослушивает. Если он перечисляет порт как прослушивающий, единственное, на что я могу рассчитывать, это будет иметь эффект от имени файла hosts в каталоге% systemroot% \ system32 \ drivers \ etc \. Установите "127.0.0.1 localhost", чтобы он не комментировался.

Если порт не указан как прослушивающий, это проблема VS или обслуживания. Эта страница VS 2005 должна охватывать любые связанные с этим причины .

1 голос
/ 30 декабря 2010

Вы смотрели на трассировку стека в Visual Studio, чтобы увидеть, что не работает в Javascript? Какой элемент не найден и откуда он берется? Что ожидается?

У меня были подобные проблемы в прошлом, и иногда это может быть просто результатом плохого JavaScript. Используйте вкладку трассировки стека в вашем отладчике, чтобы увидеть, какой элемент выходит из строя. Если вы можете сопоставить элемент с объектом в DOM или, еще лучше, с вашим кодом, вы можете сузить суть проблемы.

1 голос
/ 30 декабря 2010

Я дам вам подсказку о нескольких запущенных процессах IE: если вы запустите IE8, вы получите один хост-процесс и один рабочий процесс.При поиске в списке процессов в окне Attach Process в VS хост будет показывать заголовок страницы, а рабочий не будет иметь заголовка.Вы хотите присоединиться к рабочему процессу (тот, у которого нет заголовка).Это может сбивать с толку, поэтому в общем случае избегайте нескольких вкладок при отладке, чтобы у вас всегда работали два процесса.

Закрывается ли вкладка IE только «Соединение ...», когда отладчик подключен или иным образом?Вы ничего не сказали о каких-либо точках останова, которые могут быть активными, и может ли это способствовать процессу, не продвигающемуся вперед.

1 голос
/ 30 декабря 2010

Я использую другой подход. Я всегда буду запускать приложение, а затем использовать VS для решения проблемы. Обычно шаги работают так:

  1. Настройка приложения для работы в IIS.
  2. Запустить VS как администратор или с правами администратора. Если вы не сделаете этот шаг, VS сообщит вам.
  3. Перейдите непосредственно перед проблемой.
  4. В VS Перейти к отладке -> Присоединить к процессу или использовать горячую клавишу CTRL + ALT + P
  5. Если проблема в коде на стороне сервера, тогда атакуйте w3wp.exe (убедитесь, что вы подключаетесь к правильному w3wp.exe, который у вас может быть несколько, из-за Classic / Pipeline) ИЛИ Присоединитесь к экземпляру IE с помощью Заголовок соответствует заголовку вашей веб-страницы.
  6. Если подключено к серверу, VS автоматически остановится при ошибке. Если он подключен к IE, убедитесь, что вы установили точку останова в правильном положении в VS.

Несмотря на это, отладка IE с использованием VS всегда была сложной задачей. Встроенный отладчик IE8 обычно подходит для этой задачи.

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

0 голосов
/ 21 февраля 2014

Это может быть проблема с моделью процесса IE8 LCIE (слабосвязанная Internet Explorer).В IE8 появилась (плохо продуманная) идея запуска новых процессов IE, когда вы открываете новые вкладки браузера.Вы начинаете с двух экземпляров iexplore.exe в диспетчере задач, и они быстро умножаются на 8, 12 16 процессов и т. Д., Каждый из которых захватывает огромные объемы памяти и ресурсов.VS2010 очень плохо справляется с LCIE, с различными и многочисленными проблемами.Рекомендуется отключить LCIE:

  1. Пуск-> Выполнить
  2. Введите regedit
  3. Перейдите в HKLM \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Internet Explorer \ Main
  4. Добавьте ключ REG_DWORD с именем TabProcGrowth
  5. Установите его в 0 (ноль)
  6. Закройте все экземпляры IE.
  7. Закройте сеанс VS2010.
  8. Попробуйте еще раз.

Даже если это не решит вашу проблему, это решит все виды других проблем.TBH Я не понимаю, как можно отладить VS2010 + IE без отключения LSIE.

0 голосов
/ 30 декабря 2010

Я бы отладил это в Chrome. Встроенные инструменты разработчика для отладки JavaScript просто фантастические.

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