“无可用源” - Visual Studio调试(即使已加载符号)

时间:2012-03-23 17:38:47

标签: c# visual-studio debugging

我已设置Visual Studio 2012专业版来下载调试符号。它设置正确,符号已下载。

我到达了我想要介入的代码行:

bool result = Membership.ValidateUser("user", "password");

我右键单击它并选择step into specific-->Membership.ValidateUser()

然后在Visual Studio中打开一个选项卡,说:

  

无可用来源 - 当前位置没有可用的源代码

Membership.ValidateUser()位于System.Web.Security中的System.Web.dll命名空间中。如果我打开模块窗口,我可以清楚地看到已经下载了该程序集的符号。

如果符号在那里,为什么我无法进入源代码?

4 个答案:

答案 0 :(得分:2)

您可能拥有符号,但 DO Not 拥有源代码。 PDB不足以进行调试,但它们必须将源代码与可执行文件链接起来。 PDB很好地报告错误,因为它们提供了调用堆栈的详细信息,为了调试,你需要有源代码。

答案 1 :(得分:2)

答案 2 :(得分:1)

我遇到了同样的问题,在我的情况下它是版本4.0而不是4.5,但仍然是同样的问题。

使用fiddler检查后,对于许多DLL文件,似乎referenceserver.microsoft.com上的服务器返回404,然后Visual Studio退回并从msdl.microsoft.com上的Microsoft符号服务器下载,该服务器不包含实际的源代码。

因此,在一天结束时,使用Microsoft代码的源代码似乎并不总是有效,并且可能会使用.NET Reflector

我刚刚找到另一个Stack Overflow回答, .NET framework source stepping not working despite options set ,根据它,问题可能与SP1有关。

答案 3 :(得分:1)

我有类似的问题,这就是我解决它的方法。

右键单击您的项目 - >属性 - >编译 - >高级编译选项......

然后设置'生成调试信息'到' Full'从下拉菜单中。

希望有所帮助。