«Step Into» неожиданно не работает в Visual Studio

Внезапно я столкнулся с проблемой, из-за которой я не могу войти ни в какой код через отладку в Visual Studio. Перешагивание работает нормально, но отказываться от него не получается (F11) любой мой код. Раньше это работало, а теперь - нет.

Я пробовал кое-что из приведенного ниже, но все равно не добился успеха:

Delete all bin files in every project in my solution, clean solution, re-build solution.

Build projects in solution indivdualy

Restart machine

ЭтоASP.NET C # приложение, потребляющееWCF обслуживать на месте. Это в режиме отладки. У меня установлена точка останова на странице, использующей сервис. Точка останова срабатывает, но она не переходит в служебный код.

Сайт ASP.NET и код сервиса - все в одном решении. Это вдруг не работает, это работало раньше.

Как я могу решить эту проблему?

Добавляя точку останова в сервисный проект, я получаю предупреждение:

Breakpoint will not currently be hit. No symbols have been loaded for this document.

Я удалил все папки bin для всех проектов и перестроил их один за другим. Все они преуспели, но все же я получаюsymbols won't load на любой точке останова я помещаю любой проект в решение, отличное от проекта ASP.NET, где работает точка останова. Я был в состоянии отладить шаг во всех проектах раньше, это неожиданно.

Информация из окна вывода.

'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.DurableInstancing\v4.0_4.0.0.0__31bf3856ad364e35\System.Runtime.DurableInstancing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml.Hosting\v4.0_4.0.0.0__31bf3856ad364e35\System.Xaml.Hosting.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\2d49cf50\14eee2cf\App_Web_jmow15fw.dll', Symbols loaded.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.WorkflowServices\v4.0_4.0.0.0__31bf3856ad364e35\System.WorkflowServices.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Web\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Discovery\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Discovery.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Activities\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Activities.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Routing\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Routing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Channels\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Channels.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WebDev.WebServer40.EXE' (Managed (v4.0.30319)): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.IdentityModel\v4.0_4.0.0.0__b77a5c561934e089\System.IdentityModel.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
 Robert Levy29 мая 2012 г., 16:43
что это за код?
 agent-j29 мая 2012 г., 16:43
ты удалил свойobj папки вместе сbin папки?
 Chris Shain01 июн. 2012 г., 16:15
Может быть, глупый вопрос, но вы уверены, что проект службы WCF успешно компилируется?
 Nick LaMarca01 июн. 2012 г., 16:29
Все проекты компилируются да
 agent-j29 мая 2012 г., 16:44
Является ли сборка, в которую вы не можете войти, в GAC?

Ответы на вопрос(12)

Включить отладку неуправляемого кода & quot; в свойствах проекта | Debug сделал свое дело. Я не знаю, почему это сработало, поскольку весь код проекта находится на vb.net.

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

что я прочитал и понял, вы должны искать следующий файл:

Имя сборки Project.pdb в каталоге bin. Если вы его не видите, он не будет создан. Смотрите мои комментарии по настройке отладочной информации на полную, и Options / Debugging / Symbols.

Установите подробные или подробные выходные данные сборки проекта (Инструменты / Параметры / Проекты и решения / Построить и запустить / MSBuild).

Найдите в этом файле определенные задачи (например, AssemblyName.pdb), удалите, скопируйте и т. Д. И посмотрите, сможете ли вы выяснить, пытается ли он удалить файл pdb, на который он ссылается из (dll / exe) куда он кладет, копирует и т. д.

Если он не создается, вы увидите только задачи удаления. Если это так, вы увидите задачи копирования и ссылки. Эти пути копирования и ссылки будут указывать, куда вам нужно направить консоль модулей этой сборки (AssemblyName.exe), чтобы получить ее файл символов (т.е. куда был скопирован этот файл pdb).

 Nick LaMarca05 июн. 2012 г., 20:15
мы говорим о проекте с сервисом в нем правильно?
 Nick LaMarca05 июн. 2012 г., 20:50
я добавил информацию из окна вывода выше
 05 июн. 2012 г., 21:00
Вывод, который вы опубликовали, - это не то, что я хотел, чтобы вы искали, а что-то вроде: Задача & quot; Копировать & quot; Копирование файла из & quot; obj \ Development \ YourAssembly.pdb & quot; в & quot; bin \ Development \ YourAssembly.pdb & quot ;. Эта строка будет указывать, что он построил файл символов и показывает, где он должен быть.
 05 июн. 2012 г., 20:55
Детали окна вывода - это то, на что я ссылался. Установите вывод, как я упоминал, и это информация журнала, на которую я ссылаюсь. Если ваш сервисный проект является тем, что вы не можете отладить, то это тот, который я говорю о восстановлении с подробным / подробным ведением журнала в окне вывода (среди других предложений, а также для этого проекта, например, упомянутых конфигураций отладки) , Затем в этом приложении-службе (в которое вы не можете войти) найдите имя сборки этой службы (AssemblyName.exe) и найдите pdb, например, AssemblyName.pdb и действия, о которых я упоминал, в этом подробном выводе.
 Nick LaMarca05 июн. 2012 г., 20:19
где находится подробный файл журнала, на который я смотрю?

enter image description hereЯ использую VS 2017, но это работает и в 2015 году. Моя проблема заключалась в том, что когда я устанавливал точку останова, код правильно останавливался в этой точке, но когда я нажимал F10 или F11, код просто заканчивал работу, а не переходил к следующей строке. Я также заметил, что хотя код был остановлен в точке останова, я не мог использовать курсор для наведения курсора на мои переменные, чтобы увидеть их значения. Вот как я исправил проблему

With the project open but not running make sure the Standard tool bar is displayed (it probably is because it's the default) Look at the drop down list in the toolbar that has the options Debug, Release, Configuration Manager. Select Debug from this list. Mine was set to Release

IEnumerable, В этой ситуации F11 может пропустить метод доIEnumerable повторяется, так как его выполнение откладывается до тех пор.

 12 янв. 2018 г., 23:19
Мой случай был похожим, но просто я никогда не использовал результаты IEnumerable, поэтому, несмотря на то, что он работал, он так и не добрался до конца. Как только я добавил дополнительную строку, которая использовала результаты IEnumerable, все точки останова были сбиты.

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

Больше информации здесь: Разрешение экземпляров типов с помощью Unity

Is the WCF project a web application as well? Is ASP.NET debugging enabled for it? (right-click on the WCF project, go to Properties | Web)

I've also had this happen to projects when the references are messed up -- make sure that the reference from the web application is to the same copy of the project as the one in the solution.

Check the configuration manager (in Solution Explorer, right-click on solution | Configuration Manager), and make sure that both projects are building.

Sometimes the .suo file gets corrupted, and you can get all sorts of weird behavior. You can try deleting it (make a backup copy if you are paranoid, see The evil suo file - fighting and winning with Visual Studio).

 Nick LaMarca01 июн. 2012 г., 16:26
Что мне делать на вкладке «Свойства / Веб» проекта WCF?
 Nick LaMarca01 июн. 2012 г., 17:17
Да, это было проверено в проекте wcf services
 01 июн. 2012 г., 16:31
Внизу есть набор флажков - убедитесь, что установлен флажок для включения отладки asp.net.
 Nick LaMarca01 июн. 2012 г., 16:28
Я удалил все папки bin для всех проектов и перестроил их 1 на 1, все они преуспели, но все еще получали символы, которые не будут загружаться на любой точке останова, которую я вставил в любой проект в решении, кроме проекта asp.net, где работала точка останова , Я был в состоянии отладить шаг во всем проекте раньше, это неожиданно.
 01 июн. 2012 г., 16:32
Основываясь на вашем последнем комментарии, определенно проверьте тот отладочный вариант, о котором мы написали. Я один или два раза получал, что этот ящик загадочным образом не проверен (возможно, другой разработчик проверил его таким образом и не взял кредит, возможно, в VS скрывается какая-то ошибка, которая его вызывает).

F11 ключ может быть отскок к чему-то еще. Это может работать, если вы нажмете кнопку перехода в Visual Studio.

 Nick LaMarca08 июн. 2012 г., 15:35
Я пытался просто нажать кнопку «шаг в» в VS, но все тот же результат
 08 июн. 2012 г., 16:24
Вы можете использовать функцию step-into в других проектах или только внутри этого проекта step-into не работает? Это может быть просто основной проблемой VS.
Решение Вопроса

Delete the solution's suo file (contains debug information, user settings such as break points, bookmarks, and other user settings.) Delete the Visual Studio cache files (see below) Delete all temporary files (a shift from VS9 to VS10 is that VS10 uses the temp folder) Manually delete all obj and bin folders using Windows Explorer.

Откройте Visual Studio и перестройте все. Это всегда работает. УвидетьC # VS2010 Ошибка входа в режим останова.

Для справки:

Private Sub ClearVS9
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Microsoft\VisualStudio\9.0\ProjectAssemblies")
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Microsoft\VisualStudio\9.0\Recent")
    ClearFolder(oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Local Settings\Application Data\ApplicationHistory")
    ClearFolder(oShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemblies")
    ClearFolder(oShell.ExpandEnvironmentStrings("%WINDIR%") & "\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files")
End Sub

Private Sub ClearVS10
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Local\Microsoft\WebsiteCache")
    ClearFolder(oShell.ExpandEnvironmentStrings("%APPDATA%") & "\Local\Microsoft\VisualStudio\10.0\ProjectAssemblies")
End Sub

Смотрите ссылкуЗлой файл suo - сражайтесь и побеждайте с помощью Visual Studio упомянутый JMarsch.

 04 дек. 2013 г., 13:23
Если вы хотите добавить код удаления, вы можете найти примерhere.
 06 июн. 2012 г., 20:45
Это часть скрипта, используйте его только для справки. В диалоговом окне «Выполнить» просто введите переменную среды и нажмите Enter. Это откроет Window Explorer. Перейдите к папкам, затем удалите файлы.
 04 дек. 2013 г., 13:11
Я отредактировал этот ответ. Прочитайте обновление, чтобы увидеть, как его использовать. В реальном сценарии вы можете заменить всплывающее окно оператором удаления, чтобы удалить файлы, а не просто отобразить пути.
 Nick LaMarca06 июн. 2012 г., 15:59
Я не уверен, как использовать этот код. Должен ли я просто создать консольное приложение с вашей подпрограммой ClearVS2010 и запустить его? Как выглядит ClearFolder?
 03 авг. 2015 г., 12:22
Спасибо, только Удалить SUO файл и временную папку достаточно для запуска отладчика.

Remove temporary ASP.NET files from the %temp% location. Clean and build projects in your solution one by one and then build your host and try debugging.

Это сработало для меня.

 30 мая 2012 г., 03:44
Возможно, ваш отладчик не загружает файл PDB, связанный с dll вашего модуля.Here is a good post Если проблема не устранена, проверьте ее. Удачи.
 30 мая 2012 г., 16:15
Вы читали пост, который я упомянул выше? Во время отладки в Visual Studio нажмите Отладка & gt; Windows & gt; Модули. Среда IDE закрепит окно модулей, показывая все модули, которые были загружены для вашего проекта. Найдите библиотеку DLL вашего проекта и проверьте ее состояние символа. Если написано «Символы загружены», значит, вы «золотой». Если там написано что-то вроде «Не удается найти или открыть файл PDB», щелкните правой кнопкой мыши по вашему модулю, выберите «Загрузить символы» и найдите путь к вашей PDB.
 Nick LaMarca29 мая 2012 г., 17:44
Я пытался это, к сожалению, я не мог заставить его работать
 Nick LaMarca30 мая 2012 г., 15:56
Там написано: WebDev.WebHost40.dll C: \ windows \ Microsoft.Net \ assembly \ GAC_32 \ WebDev.WebHost40 \ v4.0_10.0.0.0__b03f5f7f11d50a3a \ WebDev.WebHost40.dll Нет Нет Не удается найти или открыть файл PDB. 3 10.0.40219.1 18.02.2011 22:09 03100000-03112000 [3204] WebDev.WebServer40.EXE: управляемый (v4.0.30319) Не удается загрузить символы, но где находятся символы?
 Nick LaMarca30 мая 2012 г., 16:53
В приложение asp загружены символы, использующие службу wcf. Единственное, что не имеет загруженных символов, это webDev.WebHost40, все это работало в прошлом, а теперь нет. Дегаггер достигает точек останова в приложении asp, но не входит в служебный код

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

Я хотел шагнуть в метод, который возвращаетIEnumerator и я вызывал его простым вызовом (просто название метода).

private void Start()
{
    GetTagsFromCloud();
}

Но поскольку он работает в фоновом режиме, лучше назвать его следующим образом.

private void Start()
{
    StartCoroutine(GetTagsFromCloud());
}

орку, на которую я пытался ссылаться, находилась в моей обычной файловой системе, но во время выполнения она загружалась из GAC. Я всегда думал, что .NET пытался загрузить сначала из локального бина, а затем из GAC, но я не думаю. В любом случае, он не смог найти символы отладки .pdb для версии в GAC, и поэтому я не смог вмешаться. Как только я обновил сборку в GAC и предоставил файл .pdb, он работал.

Ваш ответ на вопрос