Ошибка VS2010: невозможно запустить отладку на веб-сервере - PullRequest
17 голосов
/ 21 мая 2010

Я получаю сообщение об ошибке «Не удается запустить отладку на веб-сервере» в Visual Studio 2010. Я нажал кнопку «Справка» и безуспешно следовал соответствующим советам.

Это происходит с недавно созданным локальным проектом ASP.Net, когда он модифицирован для использования IIS вместо Cassini (который работает для отладки). Он предлагает установить debug = "true" в файле web.config, а затем сразу же появляется сообщение об ошибке. Ничего не отображается в окне просмотра событий.

Я могу подключиться к w3wp для отладки. Работает, но не так удобно, как F5.

У меня аналогичная проблема с VS2008 на том же ПК. Отладка раньше работала на обоих.

Я перерегистрировал Framework 4 (aspnet_regiis -i). Я запустил ремонт VS2010 (это версия RTM). Я работаю на Windows Server 2008 R2 x64 box.

У меня установлен Resharper V5.

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

Буду признателен за любые идеи.

Ответы [ 27 ]

14 голосов
/ 05 августа 2010

Отключить проверку петли

( оригинальная страница Microsoft здесь )

Чтобы установить раздел реестра DisableLoopbackCheck, выполните следующие действия:

Нажмите Пуск, нажмите Выполнить, введите regedit и нажмите кнопку ОК.

В редакторе реестра найдите и щелкните следующий раздел реестра: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa

Щелкните правой кнопкой мыши Lsa, выберите пункт Новый, а затем щелкните Значение DWORD.

Введите DisableLoopbackCheck и нажмите клавишу ВВОД.

Щелкните правой кнопкой мыши DisableLoopbackCheck и выберите команду Изменить.

В поле «Значение» введите 1 и нажмите кнопку ОК.

Закройте редактор реестра и перезагрузите компьютер.

12 голосов
/ 23 ноября 2011

Я получил новый ПК с Windows 7. Я установил VS2010 и свою среду разработки и надеялся, что моя проблема отладки F5 исчезнет, ​​но все равно не удалось запустить отладчик.

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

Я наконец отследил его до моего файла HOSTS. У меня была запись для некоторых из моих локальных веб-сайтов, к которой я могу получить доступ, например "http://testsite.lcl", но назначенный мною IP-адрес был IP-адресом моей машины вместо использования 127.0.0.1, поэтому он выглядел как удаленный сервер VS2010. 127.0.0.1 решил проблему.

Спасибо всем за помощь.

10 голосов
/ 20 июля 2011

У меня была такая же проблема.Как я это исправил.

Перейти к IIS (в моем случае IIS 7 / Windows 7).Выберите свой веб-сайт из списка, нажмите .NET Compilation в разделе ASP.NET.Выберите Открыть функцию.Проверьте, установлено ли для параметра Debug значение True.В моем случае это было Ложь.Как только я изменил его на True - у меня отладка обратно:)

6 голосов
/ 29 апреля 2011

Эти шаги могут отличаться в зависимости от вашей версии Windows. Я использую 7 с IIS 7.

Откройте диспетчер IIS, нажмите «Пулы приложений» и найдите 2 пула ASP.NET v4.0 (один называется «ASP.NET v4.0», другой - «ASP.NET v4.0 Classic». Скорее всего, это первый один остановлен. Не запускайте его, нам нужно исследовать немного больше.

Для пула «ASP.NET v4.0» проверьте имя в поле Identity. Это ApplicationPoolIdentity? Запомни имя.

Откройте Управление компьютером (щелкните правой кнопкой мыши на «Мой компьютер» и выберите «Управление»). Разверните Просмотр событий, затем Журналы Windows. Нажмите на приложение и дождитесь загрузки данных. Должна быть ошибка в источнике службы профилей пользователей с сообщением, которое начинается с «Windows не может войти в систему, потому что ваш профиль не может быть загружен. Проверьте, что вы подключены к сети и что ваша сеть работает правильно».

Если вы обнаружите это, то у вас будет такая же проблема, как и я.

Решение. Вернитесь в диспетчер IIS, щелкните правой кнопкой мыши «ASP.NET v4.0» и выберите «Дополнительные параметры». В разделе «Модель процесса» первое поле - «Идентичность». Измените это с ApplicationPoolIdentity на NetworkService. Нажмите ОК.

Теперь запустите пул, если он не перезапускался автоматически. Вернитесь к своему приложению и нажмите F5 (начать отладку), и ваше приложение должно работать.

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

4 голосов
/ 11 сентября 2012

У меня была эта проблема в Visual Studio 2012 при запуске веб-сайта, который я создал в Visual Studio 2010. Я попробовал каждое из следующих действий, которые не решили проблему, но все же, возможно, потребовались:

  1. Проверено, что пул приложений был нацелен на ту же платформу, которая была указана в web.config

    <compilation defaultLanguage="c#" debug="true" targetFramework="4.0">
  2. Запущен 64-битный удаленный отладчик: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Remote Debugger \ x64 \ msvsmon.exe

  3. Установите ключ реестра DisableLoopbackCheck и перезапустите Windows. MS инструкции здесь

  4. Локально просматривал сайт (подошел просто отлично).

  5. Наконец-то я нашел настройку IIS, которая устранила проблему.

    1. Перейдите в IIS (в моем случае 7.5) и щелкните по соответствующему сайту в узле Сайты.
    2. Дважды щелкните Компиляция .NET в разделе ASP.NET
    3. В разделе «Поведение» установите «Отладка» на значение «Истина».
    4. Нажмите Применить и запустите сайт в Visual Studio.
3 голосов
/ 03 августа 2010

Сначала вы можете развернуть свое веб-приложение / сайт с помощью iis, затем открыть Visual Studio 2010. Затем нажмите «Файл» -> «Открыть» -> «Сайт-> Локальный сайт IIS», а затем выберите свой сайт / приложение. Тогда вы обнаружите, что отладка может работать. Этот метод работает для моего случая.

3 голосов
/ 01 августа 2011

У меня была такая же проблема на Win7 и VS2010 (без ReSharper) и я обнаружил, что Skype прослушивает порт 80. IIS прослушивает порт 80 по умолчанию. Это может произойти, если вы настроили VS на отладку существующего веб-приложения, работающего в IIS, вместо встроенного веб-сервера отладки ASP.NET.

Я решил проблему, сняв флажок «Использовать порты 80 и 443 в качестве альтернативы для входящих подключений». в Skype под Сервис -> Параметры -> Соединение с последующим перезапуском Skype.

2 голосов
/ 24 февраля 2012

Что мне помогло, так это перейти в IIS на уровне сервера, щелкнуть по ограничениям ISAPI и CGI, я обнаружил, что aspnet_isapi.dll для asp.net 4.0 был установлен как «Не разрешено». Я установил его на разрешенный и отладка сработала. Шаги:

  1. Открыть IIS.
  2. Нажмите на верхний уровень
  3. Выберите ограничения ISAPI и CGI в разделе IIS в представлении «Функции»
  4. Проверьте описания и, если ASP.NET v4 [текущая версия] имеет ограничение «Не разрешено», щелкните ссылку «Разрешить» в разделе «Действия» диалогового окна.

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

Ошибка HTTP 404.2 - не найдена Запрашиваемая вами страница не может быть обработана из-за настроек списка ограничений ISAPI и CGI на веб-сервере.

1 голос
/ 17 августа 2015

Еще одна вещь, которую стоит попробовать (вот что у меня сработало):

В IIS выберите Пулы приложений> (Ваш сайт)> Расширенные настройки и измените «Включить 32-разрядные приложения» на True.

0 голосов
/ 02 июня 2014

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

В конечном итоге я решил эту проблему в 2010 и 2012 годах, отследив ее до следующего отсутствующего файла в исходных файлах отладки.настройка

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\src\mfc\

Решение> Свойства> Отладка исходных файлов>

Убедитесь, что все файлы есть, затем удалите эту запись, и все снова заработало.

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