4

我正在开发自定义符号/源服务器。我已经能够生成引用我们源代码的 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 获取更多信息?

4

2 回答 2

2

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

微软论坛版主告诉我,消息“Données non valides”、“无效数据”可能与要下载的文件的路径长度有关。此路径与您在 Visual Studio/WinDBG 设置中指定的临时符号路径组合在一起。

例如,如果您已指定

%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\.] 以外的字符)
  • 客户端调试器设置。(例如,在Native模式下,不会下载托管代码的符号。模块窗口会给您一些关于当前加载的符号的提示。)
于 2013-08-12T12:13:40.073 回答
1

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

于 2016-03-11T17:17:01.230 回答