如何从SRCSRV获取更多信息?

时间:2013-08-02 09:32:03

标签: visual-studio windbg srcsrv

我正在开发自定义符号/源服务器。 我已经能够生成引用我们的源代码的pdb文件。 Visual Studio可以检索大多数源代码。但有时,SRCSRV无法检索它们。

如果我检查Visual Studio输出窗口,我可以得到以下消息

SRCSRV: Source server cannot retrieve the source code for file 'e:\SoftwareFactory\Projects\Product.Net Trunk\WorkingDirectory\Services\ErpWebServices\ErpServiceLegacyHost\Threading\ErpTransactionsSynchronizationContext.cs' in module 'C:\Program Files (x86)\Product\ProductCommon\ePgiStarterCS\server\Product.Erp.Services.LegacyHost.dll'. Données non valides.

托管源的Web服务器尚未收到此类文件的任何请求。因此,这必须是有关此精确文件的记录中的问题。

有没有办法通过SRCSRV获取更多信息?

2 个答案:

答案 0 :(得分:2)

显然答案是否定的:无法从srcsrv.dll获取更多信息。

Microsoft论坛版主have told me,消息“Donnéesnonvalides”,“Invalid data”可能与要下载的文件的路径长度有关。 此路径将合并到您在Visual Studio / WinDBG设置中指定的临时符号路径。

e.g。如果您已指定

%APPDATA%\Symbols 

作为本地符号存储,并且您在地址

下载由HTTP服务器托管的源文件
http://nightlybuilds.int/sources/get.svc/path/file.cs

路径

%APPDATA%\Symbols\sources\get.svc\path\file.cs

不得超过255个字符。

可能影响SRCSRV行为的其他因素:

  • 经典dos PATH中的字符无效(即[0-9 A-Za-z \。]除外)
  • 客户端调试器设置。 (例如,在原生模式下,将不会下载托管代码的符号。“模块”窗口将为您提供有关当前加载的符号的一些提示。)

答案 1 :(得分:1)

这是SymChk可以提供帮助的地方。使用/v开关,可以获得有关如何解析符号以及符号服务器响应的详细信息。将此与结合使用Fiddler的工具结合使用可捕获HTTP流量,您可以分析服务器未使用预期协议进行响应的位置。