Я пытаюсь отследить проблему с MVC, поэтому я решил войти в исходный код ASP .NET Core. Я снял флажок «Включить только мой код» и проверил «Включить пошаговое выполнение исходного кода .NET Framework» (хотя, полагаю, это не обязательно). Я также проверил «Включить поддержку исходного сервера» и включил сервер символов Microsoft.
Я вхожу в эту строку
app.UseMvc();
и в итоге я получаю этот код в MvcApplicationBuilderExtensions.cs.
VerifyMvcIsRegistered(app);
var options = app.ApplicationServices.GetRequiredService<IOptions<MvcOptions>>();
if (options.Value.EnableEndpointRouting)
{
Проходя по этому коду, программный счетчик начинает перепрыгивать, и я получаю сообщение об ошибке, что некоторые локальные переменные не могут получить значение, потому что оно недоступно или было оптимизировано. Я предполагаю, что это потому, что исходный файл и файлы символов не совпадают.
Я запускаю это на Visual Studio 2019. Это .net Core 2.2.203. Я удалил кэш символов и кэш SourceServer. Я пытаюсь выяснить, что я сделал неправильно в своем коде и почему.
На самом деле, я пытался отлаживать исходный код .NET несколько раз за последние несколько лет, и у меня всегда одна и та же проблема. Ни одна из онлайн-справок, похоже, не имеет ответа. Я делаю что-то не так или это просто ненадежно?