Подтвердить что ты не робот

Не удалось получить контрольные точки Visual Studio

Я работаю с проектом ASP.NET MVC, который, похоже, имеет некоторые проблемы при подключении к процессу IIS (w3wp.exe). Я запускаю решение и IIS 8.5 на своей локальной машине, поэтому я не думаю, что это имеет какое-то отношение к нашей сети. Что странно для меня, что я могу ударить точки останова на любом другом решении, которое я отлаживаю локально.

Проблема, с которой я сталкиваюсь, заключается в том, что точки останова обращаются к красным, полым кругам и никогда не попадают. Обычно исправление для этого - это Clean/Rebuild для решения, но это не сработало. Я подтвердил, что код обновляется путем добавления "throw new Exception" на страницу и обеспечения отображения исключения. Опять же, эта проблема происходит только с этим решением. Любое другое решение, в котором я запускаю отладчик, отлично работает. Я также попытался перезапустить пул приложений, веб-сайт, IIS, а также мой компьютер.

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

Еще один момент, чтобы добавить, что уникальным в этом веб-приложении является привязка в IIS. Связывание - это "*", чтобы использовать некоторые пользовательские функции, связанные с субдоменами.

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

EDIT: найдено решение, которое предложило удалить временные файлы ASP.NET. Не повезло.

4b9b3361

Ответ 1

решаемая. Введена неправильная конфигурация, выбранная в меню отладки. Я ошибочно переключил его на конфигурацию выпуска, которая не могла загрузить символы для документа. Переключил его в конфигурацию отладки, и точки останова теперь просто прекрасны.

Чтобы добавить к тому, что сказал Abacus ниже, это также может быть преобразование web.config, которое возится с вашей сборкой. В нашем случае у нас есть конфигурации Release, которые удаляют атрибут debug из раздела компиляции web.config. Ниже приведен снимок экрана примера и раскрывающегося списка Visual Studio конфигураций сборки.

ПРИМЕЧАНИЕ. Также убедитесь, что ваша Платформа верна вместе с конфигурацией. В моем случае Dev.Debug|Mixed Platforms неправильно строит решение, но Dev.Debug|Any CPU будет.

Создать список конфигурации

Ответ 2

Включить режим управляемой совместимости. Перейдите в "Инструменты- > Параметры- > " Отладка "и включите режим управляемой совместимости.

Ответ 3

Я изо всех сил пытался это исправить. Наконец, это то, что я сделал для меня.

Выберите Отладка- > Параметры- > Отладка- > Общие

Отметить Включить степпинг источника .NET Framework.

(Это может быть все, что вам нужно сделать, но если вы похожи на меня, вам также нужно сделать то, что указано ниже. В приведенном ниже решении также будут исправлены ошибки, когда ваш проект загружает старые сборки /.pdb файлы, несмотря на восстановление и чистка.)

Выберите Инструменты → Параметры → Проекты и решения → Сборка и запуск,

Снимите флажок " Только создавать проекты запуска и зависимости от Run",

Выберите Всегда строить из раскрывающегося списка Вкл., когда проект устарел.

Ответ 4

Я знаю, что это не проблема OPs, но это произошло в проекте. Решение имело несколько проектов MVC, а неправильный проект был установлен как запуск.

Я также установил конфигурацию проекта (ов), чтобы просто запустить процесс/отладчик и не открывать новое окно браузера.

Visual Studio Project Properties

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

Глупая ошибка, которая оставила меня почесывать голову около 30 минут.

Attach to both processes

Ответ 5

Щелкните правой кнопкой мыши свой проект, затем щелкните левой кнопкой мыши Свойства и выберите вкладку Веб.

Убедитесь, что для вашего случая выбран правильный сервер:

  • IIS Local

  • IIS Express

Ответ 6

У меня была такая же проблема в проекте Xamarin.Forms. Исправление было вручную преобразовывать PCL из .NET 4.6 в .NET Standard 2.0.

PCL Advanced Build Configuration

Для Visual Studio Mac: убедитесь, что вы делаете это для каждого проекта

mac-screenshot

Ответ 7

Проблема была решена снятием флажка

Свойства> Построить> Оптимизировать код

настройка на экране свойств веб-страницы (в разделе "Общие").

Screenshot.

Ответ 8

Перейти в меню Visual Studio:

Отладка → Присоединить к процессу

А затем нажмите кнопку " Выбрать", как показано на рисунке ниже:

Attach to process

Затем убедитесь, что выбран параметр "Автоматически определять тип кода для отладки", например:

Select code type

Ответ 9

В моем случае это решение полезно:

Решение: отключите опцию "Просто мой код" в настройках "Отладка/Общие".

![enter image description here

Ссылка: c-sharpcorner

Ответ 10

Если кто-то использует Visual Studio 2017 и IIS и пытается отладить проект веб-сайта, для меня работало следующее:

  • Прикрепите проект веб-сайта к IIS.
  • Добавьте его в решение с помощью Файл → Добавить → Существующий веб-сайт... и выберите проект из каталога inetpub/wwwroot.
  • Щелкните правой кнопкой мыши проект веб-сайта в проводнике решений и выберите Страницы свойств → Параметры запуска
  • Нажмите Конкретная страница и выберите стартовую страницу (для использования службы Service.svc, для использования веб-сайта Default.aspx или пользовательское имя для выбранной страницы).
  • Нажмите Использовать настраиваемый сервер и напишите

http (s)://localhost/(имя веб-сайта, отображаемое в IIS)

например: http://localhost/MyWebSite

Что это! Не забудьте убедиться, что веб-сайт запущен в IIS и что веб-сайт, который вы хотите отлаживать, выбирается как проект запуска (Щелкните правой кнопкой мыши → Установить как проект запуска).

Оригинальное сообщение: Как отлаживать ваши проекты ASP.NET, выполняемые под IIS

Ответ 11

В моем сценарии у меня есть приложение MVC и WebAPI в одном решении, и я использую локальный IIS (не экспресс).

Я также настроил сайты в IIS как настоящие домены и отредактировал свой хост файл, чтобы я мог ввести реальный домен, и все работает. Я также заметил 2 вещи:

  1. Отладка кода MVC работала отлично.

  2. Присоединение к процессу тоже работает отлично. Просто когда я отлаживал, это не достигло точки останова в моем API.

Это было решение для меня:

Щелкните правой кнопкой мыши проект webapi> свойства> Интернет> URL проекта

По умолчанию он указывает на localhost, но, поскольку я настроил сайт в IIS, я забыл изменить URL-адрес на домен веб-сайта (т.е. Вместо locahost следует указать http://{domain-name}/).

Ответ 12

В Visual Studio 2017 вам необходимо убедиться, что вы не находитесь в режиме настройки выпуска.

  1. Откройте меню сборки ddl
  2. Нажмите менеджер конфигурации
  3. Изменить с "релиз" на "отладка"

configuration manager debug

Ответ 13

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

Ответ 14

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

Например, забыв "Handles Me.Load", я получил несколько раз при копировании и вставке кода:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    --this block of code will not execute
    End Sub 

против

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    --this block executes
    End Sub

Ответ 15

Вы не можете достичь точек останова, когда подключены к процессу IIS, если вы не вошли в свою учетную запись Microsoft в VS2017.

Ответ 16

В моем случае фактический процесс отличался от первоначального запущенного процесса.

Обычно мы связываем локальные службы через процесс w3wp.exe. В моем случае был использован нестандартный процесс. Переход на это решил проблему.

Еще одна вещь, перейти от выпуска к режиму отладки. В режиме выпуска файлы PDB не обновляются с деталями точек останова. Поэтому убедитесь, что вы отлаживаете свое приложение в режиме отладки.

Ответ 17

Щелкните правой кнопкой мыши свой проект, затем щелкните левой кнопкой мыши Свойства и выберите вкладку Веб. Отладчики> ASP.NET