Почему я не могу отладить мой сайт ASP.NET в Visual Studio? - PullRequest
20 голосов
/ 15 марта 2010

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

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

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

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

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

Есть идеи?

Ответы [ 14 ]

10 голосов
/ 15 марта 2010

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

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

C:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\
8 голосов
/ 15 марта 2010

Проверьте ваш web.config для

<compilation debug="true">...
3 голосов
/ 15 марта 2010

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

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

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

На вкладке «Сборка» свойств проекта вы находитесь в конфигурации «Актив (отладка)», у вас не установлен флажок «оптимизировать код»?

Если вы нажмете «Дополнительно ...» на этой вкладке, какое значение у вас будет для «Отладочная информация»? Это "полный" или "нет"?

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

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

Да, в вашем окне вывода будут показаны все dll фреймворка, на который вы ссылаетесь, а также ваш код - но вы должны увидеть там один файл с именем каждого вывода проекта - это те, на которые стоит обратить внимание.

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

2 голосов
/ 07 августа 2012

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

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

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

2 голосов
/ 11 апреля 2011

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

1 голос
/ 24 марта 2017

Я испробовал все перечисленные ниже параметры в моем Visual Studio 2013 Update 4.

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

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

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

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

1 голос
/ 15 февраля 2016

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

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

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

1 голос
/ 10 октября 2012

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

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

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

1 голос
/ 15 марта 2010

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

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

devenv.exe /resetsettings

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

1 голос
/ 15 марта 2010

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

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

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