2013-08-02 103 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