好的,我有:

Visual Studio 2010 RC, W7 x64,启动了一个新的项目类型的Silverlight应用程序。在ASP中托管Silverlight应用程序。NET Web应用程序项目。Silverlight 3.0版。 添加了一个LinqToSQL类,一个WCF服务,一个Winform测试应用程序(解决方案中的项目)和一些类(也作为解决方案中的项目)。

昨天,我突然得到了“断点当前不会被击中”。本文档未加载任何符号。'消息出现在IDE中,但它只影响Web Appliaction,我可以调试Silverlight和Winform应用程序。

我尝试/做了什么来摆脱这条信息:

Reset Visual Studio Settings removed all files in every \Temporary ASP.NET Files Folder (there is one for each 32bit/64bit and for Framework 2.0 and 4.0) tried to debug using Visual Studio Integrated Web server - normally I use IIS, in the project output of the solution I deleted every obj and bin folders in every project folder created a new solution and added all the projects to this new solution deleted the solution suo file created a new ASP.NET Web Application to test if it is a VS-installation issue => I can debug this new project/solution rebooted the machine several times repaired the vs.net installation did an IISReset removed the Web App from IIS used the Create Virtual Directory Button under Project Properties of the Web App to create a new Web App in IIS changed the Framework Version of every project from 3.5 to 4.0 Opened the Solution on my second machine => same behavior crawled Microsoft Connect for bugs / similar issues SPENT 7 HOURS.

这是我人生中第二次这样了。上次我通过删除临时ASP解决了这个问题。NET文件文件夹,但这次我需要你的帮助。


当前回答

你所面临的原因是PDB(“PDB代表程序数据库,一种专有的文件格式(由微软开发),用于存储程序的调试信息)不是最新的,这可能是由于一些原因:

1-正如Bevan所说,您可能正在调试另一个应用程序!

2-您正在调试同一应用程序的另一个版本。例如,您将以前构建的应用程序与当前版本的代码附加在一起进行调试,而无需(重新)构建它。

清理或重建解决方案为我解决了这些问题。

为了确保问题不是你的,试着在VS 2008上调试相同的应用程序(我担心这可能是VS 2010的一个bug——它仍然是测试版!)

其他回答

我遇到过这个问题,但在我的情况下,这是因为我试图调试的模块延迟加载。我有一个链接到我的主项目的DLL, DLL是我正在调试的。DLL只在主应用程序中的某些函数被调用时才被调用,因此VS2010在这些函数被调用之前不会加载模块。

当我启动项目时,我收到了这条消息,但当我执行函数时,调试器已经加载了模块和相关的调试信息。

这个帖子对我帮助很大:http://geekswithblogs.net/dbutscher/archive/2007/06/26/113472.aspx

好了,开始吧:

(在一个“silverlight应用程序”中:请首先检查silverlight是否在你的服务器项目“属性”中的“web”中被选中-如果这没有解决问题,那么尝试下面的这个)

第一次做以下事情: 首先运行:devenv.exe /ResetSettings 而且 1: 在顶部菜单中单击调试标签 2: 点击选项和设置 3: 在“调试”和“通用”下找到“启用。net框架源代码步进” 4: 在方框上打勾。 5: 现在所有的符号都将被下载并重新配置:)

如果它再次发生后,上述只是清除文件夹的符号是:

1: 在顶部菜单中单击调试标签 2: 点击选项和设置 3: 在“调试”和“符号”下找到“空符号缓存”按钮并单击它。

确保在DEBUG模式而不是RELEASE模式下运行程序。

每当我遇到这个特殊的错误时,结果是Visual Studio加载程序集的文件夹与web应用程序运行的文件夹不同。

也就是说,运行应用程序的应用服务器

C:\dev\MyApplication\bin 

但是Visual studio正在调试从

C:\dev\MyOtherApplication\bin (or something along those lines, anyway).

注意——由于各种原因,我使用IIS作为应用程序主机进行调试,而不是大多数人使用的小型独立设备。这可能会影响我回答的有用性!

更新:

对于IIS,应用服务器目录(即上面的C:\dev\MyApplication)是为web应用程序配置的物理目录-这可以通过更改应用程序的基本设置来控制。

对于Visual studio,调试目录(例如上面的C:\dev\MyOtherApplication)是svc文件所在的目录,通常与csproj项目文件所在的目录相同。

另一个可能有用的轶事是

当我的一个项目使用来自发布输出文件夹的文件引用时,我遇到了这个问题。当构建结果被放置在Goods文件夹中时,这些Release dll将覆盖Debug dll。

解决方案是确保在csproj文件中,我的引用的HintPath是

< HintPath > \…" Goods美元(Configuration) \ \核心MyFramework等< / HintPath >。

而不是

<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>