Visual studio 2019: включение «Использовать режим управляемой совместимости» приводит к «Отказ в доступе» при удаленной отладке - PullRequest
1 голос
/ 13 февраля 2020

Я начал использовать удаленную отладку для проверки своего поведения веб-сервиса, которое развилось в ASP. NET (не MVC не. net ядро), но во время процесса отладки значения переменных, которые не отображаются, и просматривают не работал

Многие ответы, такие как [1] , [2] , предлагают включить Use Managed Compatibility Mode. Я сделал это, но после этого изменения я больше не могу подключиться к удаленному процессу из-за ошибки: Unable to attach to the process. Access is denied. Я должен отключить Use Managed Compatibility Mode, чтобы иметь возможность снова подключиться к удаленному процессу.

Я не знаю, как исправить это, хотя есть много предложений, таких как Запуск от имени администратора и др. c, но они не работают. Подробно: MY IDE: VS 2019 Версия 16.2.0 в windows 10x64. Сервер IIS работает на Windows 7x64. И VS2019, и удаленный отладчик работали от имени администратора.

enter image description here

Ответы [ 3 ]

0 голосов
/ 18 февраля 2020

Я не уверен, что это поможет, но я дам здесь 2 цента.

сначала убедитесь, что вы прошли тестовые настройки enter image description here

один раз Готово, щелкните правой кнопкой мыши на веб-сайте в IIS -> Управление веб-сайтом -> Затем Просмотр Это создаст новый экземпляр в процессах (в случае, если экземпляр был проблемой).

сейчас go впереди и присоедините процесс для w3wp.exe, он должен позволить вам присоединить процесс.

пара потоков, которые я нашел может помочь вам

  1. https://social.technet.microsoft.com/Forums/en-US/51f55fd6-bed7-412d-b410-d0ad4113f533/cannot-attach-debugger-to-miiserverexe?forum=identitylifecyclemanager
  2. https://docs.microsoft.com/en-us/visualstudio/debugger/unable-to-attach-to-the-process?view=vs-2019
0 голосов
/ 22 февраля 2020

Во время моего исследования я заметил, что, хотя многие посты рекомендовали попробовать ManagedCompatibilityMode , были и другие, такие как, которые предлагают отключить это

Для ошибки AccessDenied:

  • Монитор удаленного отладчика> Инструменты> Разрешения> Проверка Разрешить отладку для соответствующих пользователей.
  • Параметры отладки> Отладка > General> JustInTime> Check Managed
  • Также сообщение MSDN об этом UnableToAttachToProcess

Для значений, не отображаемых в отладке В режиме я собрал различные проверки, которые вы можете выполнить

  • Убедитесь, что для параметра Конфигурация сборки установлено значение Отладка (не для выпуска)
  • Свойства> Сборка> Расширенный> Отладка Информация: Полная
  • Сборка> Чистый раствор
  • Запуск cmd> iisreset
  • Снимите флажок Оптимизировать код
  • Проверьте небезопасный код
  • Параметры отладки> Проверка Подавить оптимизацию JIT на модуле * 1 043 *

  • Publi sh Профиль: Конфигурация установлена ​​на Отладка

  • Параметры отладки> Отметьте «Включить только мой код»
  • Отладка> Параметры> Установите флажок Использовать устаревшие C# и оценщики выражений VB (снимите флажок, если он не работает)
  • Инструменты> Параметры> Отладка> Символ> Нажмите Очистить кэш символов
  • Инструменты> Импорт и экспорт Настройки> Сбросить все настройки
0 голосов
/ 17 февраля 2020

Вы выбираете «DefaultAppPool» при добавлении веб-сайта в IIS или других, например «ASP. NET 4.0»? Я заметил, что тип w3wp.exe - «x86», не уверен, что это имеет значение, поскольку я тестирую на своей стороне, и это x64 (поскольку MS прекращает поддержку Windows7, я использую две машины с Windows 10 x64 и тест на моей стороне, но удаленная отладка работает хорошо).

Также, пожалуйста, убедитесь, что при публикации sh вы установили конфигурацию «Отладка» (не «выпуск»). И обратите внимание на то, что «отладка между двумя компьютерами, подключенными через прокси-сервер, не поддерживается». Не уверен, что если вы пропустили что-то / шаги, вы можете проверить этот документ: Удаленная отладка ASP. NET на удаленном компьютере IIS, чтобы подтвердить это.

Кроме того, проверьте «Разрешения для удаленной отладки» (VS 2019 Remote Debugger (Administrator) => Инструменты => Разрешения ..) и убедитесь, что администратор / пользователь был добавлен в «Группу или пользователя». Имена »и установите флажок« Разрешить »в разделе« Разрешения для администраторов »для« Отладка ».

Надеюсь, это вам немного поможет.

...