【问题标题】:How to step inside/debugging the code source of web.api 2 and System.Web dll如何进入/调试 web.api 2 和 System.Web dll 的代码源
【发布时间】:2017-12-06 12:01:42
【问题描述】:

我想进入/调试 web-api 2(版本 5.2.3)代码源以了解它。

我创建了一个简单的 web api 应用程序,并且在 WebApi.config 中,我在这一行设置了一个断点:

 config.Routes.MapHttpRoute(
           name: "ExcludedRoute",
           routeTemplate: "api/{controller}/{action}",
           defaults: new { id = RouteParameter.Optional },
           constraints: new { Controller = "healthcheck", action = "check" }
       );

我可以进入 MapHttpRoute 方法和其他类,但调试器无法从图片下方的 System.Web dll 进入 Route 类:

我尝试使用此符号文件位置:

我还使用 dotpeek 工具从 bin 文件夹生成 pdb 文件,方法是将引用程序集的“复制本地”功能设置为 true,但没有成功。 system.web dll的路径是

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.Web.dll

我想知道为什么调试器无法进入属于 system.Web dll 的 Route 类,它的版本是 4.0,而 web.api 的版本是 5.2.3。

在我的搜索中,我下载了asp.net的代码源,发现项目System.Web.Http.WebHost包含HttpWebRoute类。

有什么想法吗?

谢谢!

【问题讨论】:

    标签: asp.net debugging asp.net-web-api visual-studio-debugging


    【解决方案1】:

    Assembly System.Web.pdb 位于 .NET Framework 源代码中。您需要在工具 -> 选项 -> 调试 -> 常规菜单中配置 Visual Studio 以调试 .NET 框架。

    参考:

    How do I debug .NET 4.6 framework source code in Visual Studio 2017?

    【讨论】:

    • 正如我在问题中提到的,我已经使用标准源服务器配置了 Visual Studio,但结果并不好。我更喜欢使用 dotpeek 工具来生成 pdb 文件,但即便如此,system.web.pdb 也不允许我进入路由类。
    • @Issa Dawaji,所以你像这个文档一样设置正确的设置:referencesource.microsoft.com/setup.html,对吗?如果是这样,您在调试应用时是否收到任何警告或错误消息?
    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多