我在Azure中运行时,Visual Studio探查器无法找到符号

时间:2013-01-16 14:22:46

标签: visual-studio azure visual-studio-2012 profiling

我正在尝试使用Windows Azure中的Visual Studio Profiler来配置我的Windows Azure应用程序。我按照http://msdn.microsoft.com/en-us/library/windowsazure/hh369930.aspx#BK_ProfilingCloudService的说明进行操作,但我遇到了这个问题,当我从实例下载分析报告时,它找不到符号信息,除了函数名称的十六进制值,我什么也得不到。分析器输出以下错误:

Warning VSP2701: F:\approot\MyApp.MyLib.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\system32\MSASN1.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\system32\slc.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\Microsoft.Build.Fra#\d172e68980f5b5930d83fc1bccfc07e3\Microsoft.Build.Framework.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Build.Framework\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Framework.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Runtime.Cach#\5cf803aa1b791b9c6cf2d5167fe7d63b\System.Runtime.Caching.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Web.Applicat#\fdc3ab5c1ff60542a20b6950f64eeb29\System.Web.ApplicationServices.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.ApplicationServices\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.ApplicationServices.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.DirectorySer#\770f4419204ad7db44842c6dbb86a336\System.DirectoryServices.Protocols.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.DirectoryServices.Protocols\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.DirectoryServices.Protocols.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.DirectorySer#\7f7a77e6e63a5169626f3c0c8c7d72a8\System.DirectoryServices.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.DirectoryServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.DirectoryServices.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Drawing\741fda6371303be2c86d23b8dcf88cc3\System.Drawing.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Data.SqlXml\2d6a784738e5d67e70feb68f0c53a3d8\System.Data.SqlXml.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.SqlXml\v4.0_4.0.0.0__b77a5c561934e089\System.Data.SqlXml.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\assembly\NativeImages_v4.0.30319_64\System.Security\b7ad9cb6010b93a853dd647d9e1f3857\System.Security.ni.dll could not be found when looking for symbol information.
Warning VSP2701: D:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Security\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Security.dll could not be found when looking for symbol information.

等等。查看路径,这显然是在实际Azure实例上寻找的路径(我已经通过RDP足够多次识别D:\ windows和F:\ approot意味着什么)。但我正在自己的机器上查看此性能报告。那么如何告诉探查器使用我的机器设置查找符号,而不是Azure实例的设置呢?

为了记录,我遵循链接页面中的说明,并且我已经广泛搜索了这个并且什么也没找到。不是说那里什么也没有,但是我正在按照分析博客中的说明进行操作,但仍然会收到错误。我在MSDN forums上问了这个问题,微软代表基本上告诉我,如果我按照说明操作,肯定会有用。

1 个答案:

答案 0 :(得分:1)

抱歉,我之前没有看到这个。基本上问题是,当您的应用程序被分析时,许多二进制文件都是ngened。因此,如果没有正确的pdb,系统无法解释函数地址,因此您会看到Hex。您需要在存在ngenbinary的同一台机器上生成ngen pdb(请参阅http://blogs.msdn.com/b/visualstudioalm/archive/2012/12/10/creating-ngen-pdbs-for-profiling-reports.aspx)。这应该照顾大多数列为* .ni.dll的二进制文件。对于您自己的应用程序,在Visual Studio中设置Symbol位置应足以找到您自己的应用程序的符号。希望这有帮助