Невозможно начать отладку на веб-сервере. Не удалось запустить отладку ASP.NET VS 2010, II7, Win 7 x64


92

Я использую Visual Studio 2010 (как администратор), IIS 7 в Windows 7 x64. Я могу запустить веб-сайт ASP.NET в IIS 7 без отладки, но когда я нажимаю F5 для его отладки, я получаю:

Невозможно начать отладку на веб-сервере. Не удалось запустить отладку ASP.NET. Дополнительную информацию можно получить, запустив проект без отладки.

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

Я проверил следующее:

  • Требования безопасности - я не припоминаю, чтобы раньше приходилось делать что-то особенное. Рабочий процесс в IIS7 - это w3wp.exe. В нем говорится, что если он работает как ASPNET или NETWORK SERVICE, я должен иметь права администратора для его отладки. Как узнать, нужно ли здесь что-то менять?

  • Страницы свойств веб-сайта> Параметры запуска> Отладчики> ASP.NET установлен. Использовать настраиваемый сервер настроен на URL-адрес сайта (который отлично работает без отладки).

  • Отладка включена в web.config.

  • Приложение использует ASP.NET 3.5 (в конце концов я хочу перейти на 4.0, но мне нужно кое-что перенести).

  • Пул приложений: Классификация .NET AppPool (также пробовал DefaultAppPool).

Есть идеи, где я могу проверить дальше?

Разумеется, не так уж сложно установить IIS, VS, создать веб-сайт и начать его тестирование?

Заранее спасибо.


1
Чтобы было понятно, когда вы запускали Visual Studio, вы щелкнули по ней правой кнопкой мыши и выбрали опцию «Запуск от имени администратора»?
Аарон Карлсон

Вы уже просмотрели эту ссылку? msdn.microsoft.com/en-us/library/dwesw3ee.aspx
Аарон Карлсон,

@Aaron, Да, на самом деле у меня VS всегда запускается от имени администратора.
Dan C

@Aaron, я специально просмотрел эту страницу и ее дочерние элементы, прежде чем размещать здесь, и ничего не выделялось из того, что мне нужно было сделать. Моя система соответствует требованиям и для сайта включена отладка. У меня нет Windows Server 2003, поэтому я не могу настраивать IIS. Я не трогал никаких настроек безопасности ни для чего, так как не знаю, нужно ли мне это.
Dan C

Не уверен, что это помогает, но я попытался создать новый тестовый веб-сайт ASP.NET 3.5 в VS 2010, добавил его в IIS 7 без каких-либо специальных конфигураций и смог нормально отладить его. Что-то связанное с моим основным приложением в том, как оно настроено в VS, IIS или, возможно, даже в файловой системе. Просто не знаю, с чего начать.
Dan C

Ответы:


239

Попробуйте зайти в IIS и проверить, запущен ли пул приложений, который вы используете. Часто возникает ошибка, из-за которой пул приложений завершается. Вам просто нужно щелкнуть правой кнопкой мыши и начать, и все будет в порядке.


Спасибо, жаль, что я не нашел этот пост в пятницу! бассейн был остановлен, и я столкнулся с первой ошибкой
Christopher Cabezudo Rodriguez

В моем случае мне пришлось разрешить ASP.NET v4.0.30319 в ограничениях ISAPI и CGI
Ади

15
+1 Неверное имя пользователя / пароль, используемые для аутентификации пула приложений.
P.Brian.Mackey 02

3
В моем случае пул уже был запущен, но после его остановки и повторного запуска все заработало.
Serj Sagan

1
Спасибо. Это решение отлично сработало для меня. Пришлось перезапускать пул приложений дополнительно.
Сунил

44

Оказывается, виновником был модуль IIS Url Rewrite . Я определил правило, которое перенаправляло вызовы Default.aspx (который был установлен в качестве начальной страницы веб-сайта ) в корень сайта, чтобы я мог иметь канонический домашний URL. Однако, видимо, у VS возникла проблема с этим и она запуталась. Эта проблема не возникала, когда я использовал Helicon ISAPI_Rewrite, поэтому мне даже не приходило в голову проверить.

В итоге я создал совершенно новый веб-сайт с нуля и понемногу портировал проекты / файлы в свое решение и перестраивал свой web.config, пока не узнал об этом! Ну, по крайней мере, теперь у меня есть немного более чистый сайт, использующий .NET 4.0 (пока, надеюсь, я не наткнусь ни на какие стены) - но какая боль!


6
Да, но вы должны быть уверены, что пул приложений работает, а также ваш портал.
Джуниор Мэйхе

В этой заметке моя проблема была в web.config в разделе: <applicationInitialization remapManagedRequestsTo = "/ App / splash.html" doAppInitAfterRestart = "true" lockAttributes = ""> <add initializationPage = "App / index.html" hostName = " CSI "lockItem =" true "/> </applicationInitialization>. Я использовал это, чтобы показать заставку во время инициализации приложения.
Ник

6
Это было для меня. Правило перезаписи для отправки всего HTTP-трафика на HTTPS вызывало эту ужасную ошибку. Я не мог найти способа сохранить правило для отладки.
Кэт,

Просто хотел добавить, что для меня это было похоже, но переписывание SSL мы имели в виду, что наш начальный путь был localhost / appname, но поскольку перенаправление отправляло вас на localhost / appname, это привело к ошибке VS, поскольку он не может обработать перенаправление .. . Нам потребовался час +, чтобы найти эту проблему, так как при локальном тестировании в IIS все работало отлично! ..
Лиам Велдон

Такая же проблема здесь (модуль IIS Url Rewrite). Я решаю это, перемещая свои правила в свой Web.Release.config. См. Weblogs.asp.net/srkirkland/… и stackoverflow.com/questions/11032868/… .
Swisher Sweet

42

Visual Studio при запуске (по какой-то причине) попытается получить доступ к URL-адресу:

/debugattach.aspx

Если у вас есть правило перезаписи, которое перенаправляет (или иным образом перехватывает), скажем, .aspxфайлы, в другое место, вы получите эту ошибку. Решение состоит в том, чтобы добавить этот раздел в начало вашего web.config«сек <system.webServer>/<rewrite>/<rules>раздела:

<rule name="Ignore Default.aspx" enabled="true" stopProcessing="true">
    <match url="^debugattach\.aspx" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="None" />
</rule>

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


1
это, к сожалению, не сработало для меня лично, однако я могу проверить, что это определенно какая-то проблема с перезаписью, поскольку я закомментировал раздел перезаписи в web.config, и я могу работать без проблем.
Мэтт

Возможно, вы захотите попробовать решение здесь: stackoverflow.com/a/30813200/375303 . Для меня работает как оберег.
jerhewet

Visual Studio будет регистрировать ошибки, связанные с DebugAttach.aspx здесь:% UserProfile% \ AppData \ Local \ Temp \ Visual Studio Web Debugger.log (если у вас нет этого файла - или если это старый файл - тогда ваша проблема вероятно, не имеет отношения к DebugAttach.aspx.)
Brandon S,

В моем случае основная причина верна, но не решение. Для меня это сработало: <location path="debugattach.aspx"> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough"> <clear /> </httpErrors> </system.webServer> </location>
Тасос К.

для меня проблема была из-за «/debugattach.aspx», но решение также меняло erroMode на «DetailLocalOnly».
Наше

30

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


Спасибо за это, я даже не использовал общий сетевой ресурс, но это отлично сработало.
Marissa

21

Если ApplicationPool Identity настроен на пользовательскую учетную запись и пароль компьютера изменен, вам необходимо обновить свой пароль.


Да, возникла проблема, попробовал пару ответов отсюда без результата, ваш ответ - это то, что мне действительно помогло!
Вадим Савенок

19

Для моего сценария это были изменения в разделе httpErrors в web.config, установив его следующим образом:

<httpErrors mode="Custom"> 

вызвал проблему «Невозможно начать отладку на веб-сервере». Возврат к предыдущему значению «DetailLocalOnly» устранил проблему. Копнув немного глубже, я обнаружил, что на самом деле причиной этого была ошибка 401:

<httpErrors mode="Custom"> 
    <error statusCode="401" prefixLanguageFilePath="" path="/masterpages/500.html" responseMode="ExecuteURL" />
<httpErrors mode="Custom"> 

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

Я до сих пор не понимаю, почему это происходит.


По той же причине я был свидетелем 401 ответа в моих журналах при попытке начать отладку, и деактивация моей обработки ошибок по умолчанию решила для меня проблему «vs не может отлаживать сайт». Я не понимаю, почему 401 появляется даже на моей странице входа, когда и только когда начинается отладка с помощью vs, а только анонимный доступ и авторизация веб-формы. активированы.
Frédéric

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

Это то, что у меня сработало (я временно удалил весь раздел httperrors). То, что я пробовал ранее, но не работало, - это перезапуск пула приложений и удаление правил перезаписи URL.
Николас Вестби,

Это то, что у меня сработало. затем я изменил свою пользовательскую ошибку, как @Pablo Romeo написал в этом ответе: stackoverflow.com/a/13905859/4489664
Бондарюк Владимир

2
Изменение erroMode на «DetailLocalOnly» тоже решило для меня. Отладчик пытался открыть «/DebugAttach.aspx», что привело к переходу на страницу пользовательской ошибки, которую он не мог запустить в данный момент.
Наше

13

Пожалуйста, проверьте пул приложений. если его остановить. перезапустите его.


4
Это то же самое, что и ответ номер 1, предложенный месяцем ранее.
mac10688

Хорошо, но почему он останавливается каждый раз?
Фернандо Торрес

Мой пул приложений работал с пользователем, у которого был изменен пароль.
Андерсон

11

Была такая же проблема при отладке модуля DNN (Dot Net Nuke). Оказалось, что нужна компиляция debug = "true":

<compilation debug="true" strict="false" targetFramework="4.0"> 

в вашем web.config. По умолчанию в DNN это false. Первоисточник здесь: http://www.dnnsoftware.com/forums/forumid/111/postid/189880/scope/posts


Спасибо!! Я весь день рвал волосы, и исправить это было так просто. Если бы только VS мог выдать содержательное сообщение об ошибке!
Colincameron

8

У меня точно такая же проблема после внедрения модуля перезаписи.

Если я удалю записи перезаписи из моего файла web.config, отладка будет работать отлично.

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

<rewrite>
    <rules>
        <rule name="LowerCaseRule_1" stopProcessing="true">
            <match url="[A-Z]" ignoreCase="false" />
            <action type="Redirect" url="{ToLower:{URL}}" />
        </rule>
        <rule name="RedirectDefault.aspx_1" stopProcessing="true">
            <match url="(.*)default.aspx" />
            <action type="Redirect" url="{R:1}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

Затем я удаляю комментарии после отладки.

Должно быть ошибка в Visual Studio 2010.


1
Верно, это обходной путь, но плохой, потому что очень легко забыть удалить подобные комментарии перед фиксацией или публикацией сайта.
Джон Адамс,

1
Вы можете переместить эти строки в конфигурационный файл web.config.release, чтобы при публикации он был только в опубликованной версии. Я так и сделал.
Shalke

Может быть, просто исключение /debugattach.aspx делает это. Посмотрите комментарий Питера
Монкса

6

Я получил ту же ошибку, так как пул приложений был остановлен в IIS. После запуска пула приложений проблема была решена.


Решил и мою проблему! Я обнаружил, что мой DefaultAppPool остановился. Спасибо, что поделились этим. Я не могу понять, почему это остановилось.
Jobert Enamno 06

5

Вот что я сделал, чтобы устранить отмеченную вами ошибку. Найдите веб-папку для приложения в файловой системе, перейдите в « Свойства» => «Безопасность», нажмите кнопку « Дополнительно» , затем перейдите на вкладку « Владелец », нажмите кнопку « Изменить» и измените владельца (с правильными разрешениями) папки и установите флажок « Repalce» владелец субконтейнеров и объектов флажок " ". Нажмите « Применить », и тогда я занялся бизнесом (смог отлаживать).

Надеюсь, это сработает для кого-то другого.


2
Сменить хозяина кому?
dumbledad

5

Просто, наконец, исправил это для моего единственного решения, в котором это было. Два проекта в решении были настроены как сайты в IIS. Я вошел и включил олицетворение ASP.Net под аутентификацией для обоих проектов ... и VIOLA! НАКОНЕЦ, больше нет этой досадной ошибки!


3

Я получал такое же сообщение об ошибке в VS 2012, но не работал с правами администратора. Когда я запустил приложение от имени администратора, я получил другое, немного более полезное сообщение (которое я смог понять). HTH


3

Если у пула приложений возникли проблемы с перезапуском или он просто не хочет перезапускаться, убедитесь, что Windows выполнила последнее обновление в ASP.NET v4.0 или другом пуле приложений. Вот что случилось в моем случае. Я просто перезапустил свой компьютер, затем перезапустил пул приложений ASP.NET v4.0, и все снова заработало!


2

Дэн,

В дополнение к предложениям Аарона попробуйте следующее

  • Убедитесь, что на вашем веб-сайте IIS выбрана встроенная проверка подлинности Windows.
  • Можете ли вы отлаживать с помощью Cassini вместо IIS?

Я выполнил следующие шаги, чтобы включить встроенную проверку подлинности Windows: msdn.microsoft.com/en-us/library/x8a5axew.aspx, однако у меня все еще та же ошибка (диспетчер iis показывает предупреждение, что я не могу использовать как вызов, так и аутентификацию на основе входа - мой сайт использует проверку подлинности с помощью форм). Я могу отлаживать сайт с помощью веб-сервера, встроенного в VS 2010, но в нем отсутствуют функции.
Dan C

Вы пробовали создать новый веб-сайт в IIS и развернуть там свой код? Из любопытства, каких функций вам будет не хватать, если вы отлаживаете в Cassini? Насколько мне известно, Cassini поддерживает аутентификацию с помощью форм.
Keefu

Что вы имеете в виду под «созданием нового веб-сайта в IIS»? Это новый компьютер с новой ОС VS2010, устанавливает IIS. Я создал новое приложение в IIS и указал его на папку фактического веб-сайта (полученную из резервной копии). Перезапись URL, похоже, не полностью работает в Cassini. Также мы используем специальный модуль для автоматического переключения между http и https ( codeproject.com/KB/web-security/WebPageSecurity_v2.aspx ).
Dan C

Cassini не поддерживает модуль Url Rewrite 2
citronas

2

Была такая же проблема с Windows 10 при включении всех функций Windows IIS. Перешел на Windows 8.1 и снова проблема. Корень находился в названии веб-сайта " http: //MySite.local". » (не связанном с версией ОС).

И решение простое

  • Отредактируйте файл hosts в %SystemRoot%\System32\drivers\etc\

  • Добавляем строку с привязкой ip: 127.0.0.1 MySite.local


Это была жемчужина для меня, я полностью забыл о настройке моего хост-файла и задавался вопросом, почему мои API не работают, когда я переключился на локальный iis (для https). VS работал только с одним запущенным сайтом, но как только я добавил второй, я больше не мог отлаживать, это решило проблему.
CDerrig

1

Сегодня у меня возникла эта ошибка из-за дефекта в коде, который огромное количество раз отправлял обратно, что приводило к переполнению IIS запросами. Это по существу заблокировало IIS, и поэтому, когда я пытался отладить, он «истек» при попытке запустить отладчик. Я просто перезапустил IIS, что заняло несколько минут, и проблема была решена.

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


1

У меня была такая же проблема в Visual Studio 2012 и 2013 в Windows 8.1. Для меня исправление заключалось в добавлении проверки подлинности Windows в IIS с помощью функции «Включение или отключение функций Windows».

Включение или отключение функций Windows на снимке экрана


1

Убедитесь, что в пуле приложений вашего сайта используется правильная версия платформы . Я получил ошибку «Невозможно начать отладку» на сайте ASP.Net 2005. Он неправильно использовал DefaultAppPool в Windows 7 (который, как мне кажется, использовал .Net Framework 4). Я создал новый пул приложений на основе .Net Framework 2 и назначил его проблемному веб-сайту. После этого отладка прошла нормально.


1

Проверьте, не остановился ли ваш сайт на IIS.

Я исправил это, и мой веб-сайт заработал. : D


1

У меня была эта проблема, и в конце концов я понял, что ASP.net не зарегистрирован должным образом в IIS. Это может произойти, если сервер IIS установлен до Visual Studio. Чтобы решить эту проблему, используйте команду aspnet_regiis -i Дополнительную информацию можно найти по ссылке


1

была такая же проблема. Если у вас установлен сертификат SSL в IIS и вы пытаетесь отладить его из Visual Studio, вам необходимо настроить приложение в IIS на игнорирование сертификата.


1

У меня была такая же проблема, и я обнаружил, что это было вызвано тем, что у меня был ошибочно введенный символ Web.configпосле конечного тега. Мой Web.configвыглядело как это право в конце: </section>h. «H» был дополнительным символом после закрывающего тега.


0

удалите sting следующим образом: targetFramework = "4.0" в web.config или измените AppPool на соответствующую версию платформы.



0

Я столкнулся с той же проблемой, но она была на собственном сервере веб-разработки Visual Studios, а не на IIS. Чтобы решить эту проблему, снимите флажок на вкладке Web в свойствах проекта, Применить настройки сервера ко всем пользователям (сохранить в файле проекта). Надеюсь. это сэкономит драгоценное время.


0

У меня такая же проблема. Все ответы выше не помогли мне. Решением было вручную удалить папку bin и obj.


0

Я тоже обнаружил эту проблему, но она больше всего похожа на то, что объяснил @Kirk, и на перезапись URL.

В моем случае кто-то внес это изменение в файл web.config для проекта MVC:

<system.webServer>
    <security>
        <requestFiltering>
            <fileExtensions>
                <add fileExtension=".aspx" allowed="false" />
            </fileExtensions>
        </requestFiltering>
    </security>
</system.webServer>

Поскольку на веб-сервере не разрешены расширения файлов .aspx, /debugattach.aspxURL-адрес был отклонен, что не позволило запустить отладчик. Как только я удалил эту конфигурацию, она снова заработала.


0

У меня была такая же проблема, когда я создал приложение в Visual Studio, а затем в свойствах создал виртуальный каталог для использования с локальным IIS. Если у кого-то есть эта ошибка, это потому, что VS создает приложение в неправильном AppPool, то есть в AppPool, который не соответствует вашим потребностям.
В этом случае перейдите в диспетчер IIS, выберите приложение, перейдите к основным настройкам и измените пул приложений на приложение, и все готово.


0

Недавно я получил ту же ошибку, и в моем случае оказалось, что есть повторяющиеся типы MIME. Недавно я добавил два, которых изначально не было в списке. IIS позволил мне добавить их, и только когда я решил снова проверить типы MIME для сайта в рамках своего диагностического процесса, я также получил ошибку в IIS. Он ссылается на дубликаты в web.config. Вернувшись к файлу web.config, я заметил, что был добавлен новый раздел с именем, включающий два недавно добавленных типа MIME. Удалил этот раздел, и жизнь снова стала хорошей! Надеюсь, это поможет другим, кому не удалось решить проблему с помощью других предложений.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.