2013-08-02 101 views
4

我正在处理自定义符号/源服务器。 我已经能够生成引用我们的来源的pdb文件。 Visual Studio可以检索大部分源代码。但有时,SRCSRV无法检索它们。如何从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获取更多信息?

+0

你在windbg试过同样的东西吗?在windbg中,您可能会得到有关错误的更多信息。 –

+0

正如@RahulSundar所建议的那样,windbg有一个命令来打开使用'!sym noisy'加载详细符号的命令。这可能有助于您诊断问题。 –

+0

@MarcSherman他的源文件加载问题,而不是符号加载... – Mark

回答

2

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

Microsoft论坛版主have told me消息“Donnéesnon valides”,“无效数据”可能与要下载的文件的路径长度有关。 此路径与您在Visual Studio/WinDBG设置中指定的临时符号路径相结合。

例如如果您指定

%APPDATA%\Symbols 

本地符号存储,而你在地址

http://nightlybuilds.int/sources/get.svc/path/file.cs 

路径下载由HTTP服务器托管的源文件

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

应不超过255个字符。

  • 字符的存在在一个典型的DOS路径([0-9 A-杂-Z \]即,比其它)无效
  • 可以影响SRCSRV的行为的其他因素客户端调试器设置。 (例如在本地模式,为符号托管代码不会被下载。模块窗口会给你当前加载的符号有些淡淡的。)

1

这是SymChk可以提供帮助。使用/v开关,您将得到关于符号如何解析以及符号服务器响应的详细输出。将其与Fiddler这类可捕获HTTP流量的工具结合使用,您可以分析服务器未按预期协议响应的位置。

+0

是否SymChk提供有关加载源文件或只有符号文件的信息?问题是关于源文件... – Mark

+0

我检查了SymChk,我只看到有关符号的信息。 – qub1n