Почему я не могу отлаживать свой веб-сайт ASP.NET в Visual Studio?

19

Раньше я мог подключаться к моему процессу w3wp и отлаживать свое веб-приложение, но это больше не работает. Я понятия не имею, что изменилось, чтобы сломать это. Я использую Visual Studio 2008 SP1. И я отлаживаю IIS, не используя собственный сервер ASP.NET (т. Е. Я не запускаю свой проект, я просто привязываюсь к запущенному процессу (w3wp).

Мои точки останова просто имеют «точку останова в настоящее время не будут удалены. Исходный код отличается от исходной версии».

Что я пробовал:

  • Было ли решение «Чистым».
  • Реконструировано решение.
  • Убедитесь, что компиляция debug = true в моем файле web.config.
  • Удалена папка bin
  • Перезагрузка Visual Studio
  • Перезапуск IIS
  • Перезагрузите компьютер.
  • Добавлен простой файл Response.Write для обеспечения использования последней библиотеки DLL. Это.
  • Убедитесь, что Debug ASP.NET проверен в свойствах моего проекта. Это.
  • Убедитесь, что все мои проекты скомпилированы в моей конфигурации сборки. Они.

Но ничто из этого не помогает. Я прикрепляю к w3wp, но мои точки останова никогда не попадают.

Любые идеи?

    
задан willem 15.03.2010 в 12:39
источник
  • Предполагаю, что вы отлаживаете IIS и не используете встроенный сервер asp.net в Visual Studio? Кроме того, VS версия PLS. –  Will 15.03.2010 в 12:53
  • Я использую VS2008 SP1, и да, я отлаживаю IIS. (уточняется и в вопросе). –  willem 15.03.2010 в 13:02

14 ответов

10

У меня была эта проблема в последнее время, и я в конечном итоге убедился, что Visual Studio вообще не работает в системе.

Затем перешел в эту папку и удалил все содержимое:

C:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
    
ответ дан Gautam 15.03.2010 в 12:47
  • Не повезло, я боюсь :( –  willem 15.03.2010 в 13:02
8

Проверьте свой web.config на

<compilation debug="true">...
    
ответ дан citronas 15.03.2010 в 12:48
  • Хороший совет. Но это :( –  willem 15.03.2010 в 12:53
  • он сказал, что имел обыкновение быть в состоянии, поэтому он должен был установить это уже :) –  HoKy22 11.07.2013 в 15:38
3

Когда вы «присоединяетесь к процессу», окно «Вывод» должно показать вам (при отображении вывода «Отладка») все библиотеки, которые он загружает, и где он их загружает - для библиотеки dll в папке / bin они обычно скопированы в папку \Temporary ASP.NET Files\root\ - где вы читаете? Вы определенно очистили их оттуда?

Единственное, что я могу придумать:

  1. Вы откомпилировали свой код в режиме «Release», а не «Debug» (не web.config) из раскрывающегося списка «Конфигурация решения».
  2. Файлы символов (.pdb) отсутствуют в папке / bin.

На вкладке «Build» свойств проекта вы находитесь в конфигурации «Active (Debug)», вы не проверяете «оптимизировать код»?

Если вы нажмете «Дополнительно ...» на этой вкладке, какое значение у вас есть для «Debug Info»? Это «полный» или «нет»?

Ответ на комментарий

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

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

У вас нет события post build, которое перемещает файлы в правильную директорию для вашего сайта, вы тихо проваливаете?

    
ответ дан Zhaph - Ben Duguid 15.03.2010 в 13:36
  • Спасибо, определенно некоторые хорошие вещи, чтобы рассмотреть :) Я скомпилировал свой код в режиме Release. Мои файлы символов находятся в папке \ bin. «Оптимизировать код» не отмечен. «Отладочная информация» «Полная». Единственная оставшаяся запутанная вещь - какие файлы должны отображаться в моем окне «Отладка вывода». Там много файлов: / –  willem 15.03.2010 в 14:03
  • Нет, нет событий создания сообщений. Я действительно в тупике: / –  willem 15.03.2010 в 14:37
  • Вы можете успешно отлаживать себя при компиляции в режиме «Отладка»? –  Zhaph - Ben Duguid 15.03.2010 в 14:58
  • Нет, я уже в режиме отладки. –  willem 16.03.2010 в 06:09
  • Хорошо, только ваш оригинальный комментарий сказал: «Я скомпилировал свой код в режиме Release». –  Zhaph - Ben Duguid 16.03.2010 в 08:26
2

У меня также была эта проблема, она была решена путем изменения типа кода «Прикрепить к» на «Автоматически» в диалоговом окне «Прикрепить к процессу». (Раньше у меня был этот набор в «Silverlight Code» из-за отладки другого процесса ... его легко забыть изменить это.)

    
ответ дан Mr. Bungle 11.04.2011 в 04:49
  • Бог, из-за этого я сошел с ума. Благодарю вас, сэр! Я отлаживал собственный код до этого, и это свойство никогда не меняется, если вы не делаете это вручную –  Mateusz Migała 28.04.2016 в 11:56
2

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

Я не смог отладить мой код на стороне сервера .aspx. У меня был рабочий проект WEPApp AnyCPU, и я хотел связать его с некоторыми dll x86, поэтому я создал цель отладки x86. Удалили похожие вещи, перестроили, остановили веб-сервер разработки, перезагрузили, очистили временные файлы, все безрезультатно.

Исправлена ​​проблема с изменением целевой папки на bin \ (был bin \ x86 \ Debug).

    
ответ дан Digital Chilli 07.08.2012 в 06:21
  • То же самое, исправлена ​​проблема, сменив целевую папку на bin \, я пытался отладить веб-сервис. Чтобы проверить, правильно ли загружен ваш файл, используйте окно модулей (VS Menu -> Debug -> Windows -> Modules), столбец Optimized должен быть «Нет» для ваших проектов. –  Damian Vogel 24.07.2014 в 11:16
1

в диалоговом окне «Прикрепить к процессу» установите флажок (рядом с нижним) для «показать процессы от всех пользователей», и если вы видите два процесса w3wp.exe, попробуйте другой.

У кого-то должно быть значение комментария / описания чего-то вроде T-SQL, которое управляется чем-то другим. Это тот, который вы хотите.

    
ответ дан David Fox 15.03.2010 в 12:44
  • Хороший совет. Но у меня только один w3wp (все мои флажки отмечены). И это тип «T-SQL, Managed, x86». –  willem 15.03.2010 в 12:46
  • Это взломать, а не исправить. Что-то не так с его настройкой. –  Will 15.03.2010 в 12:52
1

У вас есть какие-либо дополнения, которые могут повлиять на это? Или любые инструменты, которые применяют операции пост-сборки к исходному коду, которые DLL, с которых вы начали отлаживать, были модифицированы после сборки, и на самом деле правильно, что это не тот же исходный код, поэтому отладка не будет работать?

Также попытались сбросить VS?

devenv.exe /resetsettings

Изменить: , если ни одна из информации не помогла вам здесь, хотя это было бы болезненно, возможно, стоит удалить и переустановить VS и SP1. Если вы пройдете через это, и проблема будет такой же, как и раньше, это по крайней мере гарантирует, что проблема заключается в настройке web.config или в проекте.

    
ответ дан Chris Marisic 15.03.2010 в 13:15
  • Не повезло к сожалению :( –  willem 15.03.2010 в 14:07
  • Добавить другое предложение –  Chris Marisic 15.03.2010 в 14:16
1

Вы проверили файл assembly.cs с этим атрибутом

[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.Default)]

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

    
ответ дан Tümay Tuzcu 10.10.2012 в 11:09
1

Я столкнулся с той же проблемой. Процесс w3wp занял много памяти и не захотел сбрасываться при публикации веб-приложений.

  

Нажмите Ctrl + Alt + Delete & gt; Перейдите на вкладку «Процессы» & gt; найти процесс w3wp и   убей это. Запустите приложение еще раз (если это приложение mvc, просто перейдите к   связанный с URL, чтобы автоматически воссоздать процесс w3wp).

После этого исчезнут предупреждения.

    
ответ дан Spirit 15.02.2016 в 19:55
1

Я выполнил все приведенные ниже опции в обновлении Visual Studio 2013 Update 4.

  1. Сбросить IIS
  2. Очистить решение и перестроить
  3. Удалить флизы из временной папки C: \ Windows \ Microsoft.Net \ Framework ... \ Временные файлы ASP.NET
  4. Проверьте, отлажен ли тег компиляции или нет

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

  1. Отключение опции «Только мой код» Инструменты - & gt; Параметры - & gt; Отладка - & gt; Общее - & gt; Снимите флажок Включить только мой код.
  2. Отредактируйте файл web.config и сохраните (вы всегда можете создать пробел в любой строке в web.config, что будет делать)

Обратите внимание, что это решение может быть специфичным для Visual Studio, и оба исправления работали для меня в моем обновлении Visual Studio 2013 4.

    
ответ дан Sibeesh Venu 24.03.2017 в 11:02
0

В моем случае у меня было консольное приложение размещенной веб-страницы в .NET Framework 4.6.1. Когда я добавил Debug в условные символы компиляции , он начал работать:

    

ответ дан Mik 15.02.2018 в 09:13
0

У меня была эта проблема некоторое время и я нашел свое решение на форуме MS (ссылка ниже). Инструмент Debug Diagnostic был для меня виновником, но мне не пришлось его удалять. У меня было правило сбоя, настроенное для процесса w3wp, и я просто удалил это правило и перезапустил все.

Microsoft Forum для Невозможно подключить ошибку

    
ответ дан Pam 09.10.2013 в 18:12
0

В OpenVMS мы просто использовали:

Компиляция / отладка, затем связь / отладка

и все! Simples !!

, но серьезно, убедитесь, что у файла у вас есть строка Debugger.Break, в «Свойствах» всегда есть «Копировать всегда», прежде чем перестраивать

    
ответ дан Reg Hammond 08.08.2015 в 14:21
0

Я использовал расширение Visual Studio VSCommands для прикрепления отладчика (удобно). Однако IIS Express работал, и я догадался, что это может помешать. Разумеется, когда я закрыл IIS Express , я внезапно смог снова отлаживать.

Последовала радость.

    
ответ дан ErikE 17.12.2015 в 01:52