Как получить больше информации от 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.
Веб-сервер, на котором размещены источники, не получил ни одного запроса на такой файл. Так что это должно быть проблемой в записи, касающейся этого точного файла.
Есть ли способ получить больше информации по SRCSRV?
2 ответа
Видимо, ответ нет: нет способа получить больше информации от srcsrv.dll.
Модераторы форумов Microsoft сказали мне, что сообщение "Неправильные данные", "Неверные данные", возможно, связано с длиной пути файла, который нужно загрузить. Этот путь комбинируется с временным путем символа, который вы указали в настройках 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\.])
- Настройки отладчика клиента. (Например, в основном режиме символы для управляемого кода не будут загружены. В окне "Модули" появится подсказка о загруженных символах.)
Вот где SymChk может помочь. С использованием /v
Переключатель, вы получите подробный вывод о том, как разрешаются символы и на что отвечает сервер символов. Используйте это вместе с таким инструментом, как Fiddler, который захватывает HTTP-трафик, и вы можете проанализировать, где ваш сервер не отвечает с ожидаемым протоколом.