调试器正在寻找 executioncontext.cs,如何修复?
Posted
技术标签:
【中文标题】调试器正在寻找 executioncontext.cs,如何修复?【英文标题】:debugger is looking for executioncontext.cs, how to fix? 【发布时间】:2016-12-21 05:34:49 【问题描述】:我正在调试这段代码并得到一个奇怪的“找不到源”页面,当调试器进入 Jtoken 行时,该页面正在寻找这个名为 ExecutionContext.cs 的类。
ExecutionContext.cs
未找到。 您需要找到ExecutionContext.cs
才能查看当前调用堆栈帧的来源。
(更多信息见下文)
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RestSharp;
IRestResponse content = myApi.GetSomething();
JToken token = JObject.Parse(content.ToString());
MyClass myclass = token.ToObject<Myclass>();
我也尝试用动态或 var 替换 Jtoken,结果相同。 我用谷歌搜索了它,除了 MS 文档之外什么都没有,这对修复没有帮助。
关于如何让它执行或至少抛出一个我可以修复的正常异常的任何建议?
谢谢
查找“f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs”的源代码。 (没有校验和。) 文件 'f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs' 不存在。
在脚本文档中查找 'f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs'...
在项目中查找“f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs”。在项目中找不到该文件。 查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\cvt\'...
查看目录'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\msclr\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\sys\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\thr\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\amd64\'...
查看目录'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\arm\'...
查看目录'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\concrt\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\i386\'...
查看目录'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\linkopts\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\stl\'...
查看目录'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\vccorlib\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\crt\src\vcruntime\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\src\mfc\'...
查看目录 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\src\atl\'...
查看目录'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include\'...
活动解决方案的调试源文件设置表明调试器不会要求用户查找文件:f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs。 调试器找不到源文件 'f:\dd\ndp\clr\src\BCL\system\threading\executioncontext.cs'。
【问题讨论】:
你确定content
不为空吗?
好吧,我确实发现我调用了错误的 api,但是修复后,我仍然遇到了问题,但是它也发生在不同的行上,出现类似但不同的来源未找到错误,正在寻找一个 Dictionary.cs 文件。停止,再次调试,回到第一个 ExceptionContext.cs 错误。我刚刚看到错误中有其他可扩展的信息,我将在上面包含这些信息。
【参考方案1】:
调试设置已以某种方式更改,启用Just My Code 设置使其恢复为正常的托管异常抛出。为此,请转到
调试 > 选项... > 调试 > 常规 > 仅启用我的代码
【讨论】:
【参考方案2】:MAC 解决方案:
查看 Visual Studio (2017) 的左上菜单选项,其中显示两项 1. Debug 2. Release 。只需将其翻转为“发布”即可解决问题。错误地切换到调试。
并在 Mac 上清理缓存,您可以按照以下步骤操作:
-
退出任何主动打开的 Mac 应用程序
在 Mac OS 中转到 Finder
按住 SHIFT 键(在 Sierra 中)或 OPTION / ALT 键(之前)并在 Finder 中下拉“Go”菜单
从转到菜单选项中选择“库”
进入 Library 文件夹后,找到并打开“Caches”文件夹
清除缓存
【讨论】:
【参考方案3】:对我来说,Just My Code 被禁用,但这是因为我之前遇到了一个不同的问题,我无法调试任何单元测试。它会去运行测试然后无缘无故退出。
但是,在仔细检查 OP 提到的错误后,我发现原因是我试图在 RELEASE 模式下进行调试!一旦我更改为调试模式,它就可以正常工作。 之后我再次启用了Just My Code,它仍然没问题。
【讨论】:
【参考方案4】:对我来说,清理解决方案并重建工作
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于调试器正在寻找 executioncontext.cs,如何修复?的主要内容,如果未能解决你的问题,请参考以下文章
[翻译]ExecutionContext vs SynchronizationContext
NestJS:如何在 canActivate 中模拟 ExecutionContext
Azure Function IWebJobsStartup 实现中的 ExecutionContext