Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
SymProxy сохраняет параметры в этом ключе реестра.
HKLM/Software/Microsoft/Symbol Server Proxy
Этот раздел реестра управляет местом для поиска символов для хранения на веб-сайте, уровнем ведения журнала и работает ли SymProxy с прямым подключением к сети. Этот ключ можно создать, выполнив инструмент регистрации SymProxy (Symproxy.reg), предоставленный Средствами отладки для Windows. Введите symproxy.reg в командной строке или дважды щелкните его в проводнике Windows.
Будут добавлены записи для параметров с префиксом "x", что означает их отключение. Чтобы включить параметр, удалите "x" перед нужным параметром.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy]
"Available Settings"="Remove the 'x' prefix to use the setting"
"xMissAgeTimeout"=dword:00015180
"xMissAgeCheck"=dword:00000e10
"xMissTimeout"=dword:00000e10
"xNoCache"=dword:00000001
"xNoFilePointers"=dword:00000001
"xNoInternetProxy"=dword:00000001
"xNoLongerIndexedAuthoritive"=dword:00000001
"xNoUncompress"=dword:00000001
"xRequestTimeout"=dword:0000019
"xRetryAppHang"=dword:0000002
"xUriFilter"=dword:00000FF
"xUriTiers"=dword:0000001
Файл реестра symproxy.reg предполагает имя виртуального каталога символов и настраивает путь к символам для использования сервера открытых символов Майкрософт.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories\Symbols]
"SymbolPath"="https://msdl.microsoft.com/download/symbols"
Записи журнала событий в symproxy.reg рассматриваются позже в разделе журнала событий этой темы.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Microsoft-Windows-SymProxy]
"ProviderGuid"="{0876099c-a903-47ff-af14-52035bb479ef}"
"EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\
00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
5c,00,69,00,6e,00,65,00,74,00,73,00,72,00,76,00,5c,00,53,00,79,00,6d,00,50,\
00,72,00,6f,00,78,00,79,00,2e,00,64,00,6c,00,6c,00,00,00
"TypesSupported"=dword:00000007
Записи веб-каталога, содержащиеся в symproxy.reg, рассматриваются в этом разделе.
Веб-каталоги
Для каждого виртуального каталога, созданного в IIS, который вы используете в качестве хранилища символов, необходимо настроить ключ реестра в подразделе Web Directories следующего ключа реестра.
HKLM/Software/Microsoft/Symbol Server Proxy
Изменить раздел реестра для виртуального каталога хранилища символов
- Измените содержимое SymbolPath , чтобы содержать все хранилища символов, используемые хранилищем символов SymProxy. Если используется несколько хранилищ символов, разделите их точкой с запятой. Для каждого значения поддерживается не более 10 хранилищ. Пути HTTP должны включать префикс https://, а UNC-пути должны включать \\ префикс.
Например, если один из виртуальных каталогов называется Symbols, и символы, которые он использует, находятся в хранилище UNC \\symbols\symbols и HTTP хранилище https://msdl.microsoft.com/download/symbols, создайте следующий раздел реестра.
HKLM/Software/Microsoft/Symbol Server Proxy/Web Directories/Symbols
После создания этого ключа измените значение SymbolPath на \\symbols\symbols\symbols;https://msdl.microsoft.com/download/symbols. Это можно увидеть на следующем снимке экрана редактора реестра.
В этом примере SymProxy сначала ищет символы в \\symbols\symbols. Если файлы не найдены, будет использоваться Microsoft Symbol Store.
В каждом ключе в разделах веб-каталогов, названия которых соответствуют именам виртуальных каталогов, необходимо создать REG_SZ с именем SymbolPath. Значение содержит все исходные хранилища символов, которые будут использоваться для заполнения хранилища символов SymProxy.
Поддерживаются не более 10 записей.
Отделяйте записи точкой с запятой.
UNC-пути должны включать префикс "\\\\"
Пути HTTP должны включать префикс "https://"
Расположите значения от наименьшей стоимости к наибольшей.
Необходимо сбалансировать цели производительности использования с затратами на обмен данными и затраты на связь с сервером в расчетах.
Как правило, перед http-серверами интернета помещайте локальные SMB/HTTP-серверы.
Счетчики производительности SymProxy
SymProxy может выдавать счетчики производительности через поставщика SymProxy.
Чтобы включить поддержку счетчиков производительности, зарегистрируйте файл манифеста symproxy в командном окне администратора:
C:\> lodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man
Чтобы отключить поддержку счетчиков производительности, отмените регистрацию манифеста:
C:\> unlodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man
Трассировка событий SymProxy для Windows
SymProxy может создавать события ETW с помощью поставщика Microsoft-Windows-SymProxy.
C:\> logman query providers | findstr SymProxy
Microsoft-Windows-SymProxy {0876099C-A903-47FF-AF14-52035BB479EF}
Чтобы включить поддержку ETW, зарегистрируйте файл манифеста:
C:\> wevtutil.exe install-manifest %WINDIR%\system32\inetsrv\symproxy.man
Чтобы отключить поддержку ETW, отмените регистрацию файла манифеста:
C:\> wevtutil.exe uninstall-manifest %WINDIR%\system32\inetsrv\symproxy.man
Журнал событий
Если трассировка событий (ETW) настроена, события записываются в каналах оперативных и аналитических данных в журнале приложений и служб\Microsoft\Windows\SymProxy в журнале событий.
Чтобы правильно просмотреть сообщение записей журнала событий, необходимо добавить в реестр область журнала событий файла symproxy.reg:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Microsoft-Windows-SymProxy]
"ProviderGuid"="{0876099c-a903-47ff-af14-52035bb479ef}"
"EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\
00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
5c,00,69,00,6e,00,65,00,74,00,73,00,72,00,76,00,5c,00,53,00,79,00,6d,00,50,\
00,72,00,6f,00,78,00,79,00,2e,00,64,00,6c,00,6c,00,00,00
"TypesSupported"=dword:00000007
События SymProxy
SymProxy регистрирует следующие события:
Идентификатор события | Описание | Канал |
---|---|---|
1 | Начало фильтра ISAPI | Администратор |
2 | Остановка фильтра ISAPI | Администратор |
3 | Настройка фильтра ISAPI | Администратор |
4 | Статистика промахов кэша | Администратор |
10 | Запрос URL-адреса — удачное обращение к локальному кэшу | Операционный |
11 | Запрос URL — промах в локальном кэше | Операционный |
20 | Скачивание символов с помощью SymSrv | Операционный |
30 | Отсутствует критически важный символ | Администратор |
31 | Отсутствует критическое изображение | Администратор |
40 | SymSrv — путь не найден | Администратор |
41 | Symsrv — файл не найден | Администратор |
42 | SymSrv — доступ запрещен | Администратор |
43 | SymSrv — путь слишком длинный | Администратор |
49 | SymSrv — код ошибки | Администратор |
девяносто | Блокировка конфликтов | Операционный |
100 | Общее критическое сообщение | Аналитический |
101 | Общее сообщение об ошибке | Аналитический |
102 | Сообщение общего предупреждения | Аналитический |
103 | Общее информационное сообщение | Аналитический |
104 | Общее аналитическое сообщение | Аналитический |
105 | Общее сообщение отладки | Отладка |
Конфигурация прокси-сервера символов
SymProxy сохраняет параметры конфигурации в следующем ключе реестра:
HKLM/Software/Microsoft/Symbol Server Proxy
В этом расположении SymProxy получает свои глобальные параметры и пути символов в хранилищах вышестоящих символов.
Этот ключ можно создать, объединив с файлом symproxy.reg, который вы настроили, как описано ранее.
Ключ прокси-сервера символов
Раздел реестра прокси-сервера символов поддерживает следующие глобальные параметры (все REG_DWORD). Параметры можно применять в режиме реального времени путем повторного использования пула приложений. Будет создан новый процесс w3wp.exe, и он считывает новые значения. После завершения всех ожидающих запросов к старому процессу w3wp.exe завершится старый процесс w3wp.exe. IIS по умолчанию перезапускает процессы w3wp.exe каждые 1740 минут (29 часов).
REG_DWORD | Описание |
NoInternetProxy | При выполнении как службы SymSrv.dll использует WinHTTP вместо WinInet для выполнения HTTP-запросов. Следовательно, может потребоваться настроить параметры прокси-сервера HTTP, чтобы служба может получить доступ к внешним сетевым ресурсам. Это можно сделать с помощью программы netsh. Введите "netsh.exe winhttp -?" для инструкций. По умолчанию SymProxy использует назначенный прокси-сервер HTTP. Если прокси-сервер HTTP не настроен, SymProxy будет использовать фиктивный прокси-сервер. Это обеспечивает безопасный доступ к сайтам HTTP в интрасети. В качестве побочных эффектов это предотвращает непосредственное подключение SymProxy к небезопасным сайтам.
|
NoFilePointers | По умолчанию для символов, которые не существуют, SymProxy будет искать файл file.ptr рядом с запрошенным файлом (в локальном кэше). При обнаружении он вернет расположение, указанное файлом file.ptr. Эта возможность требуется только в том случае, если локальный кэш заполняется SymStore.exe.
|
NoUncompress | По умолчанию SymProxy распаковывает загруженные символы перед возвратом файла вызывающей стороне. Это сокращает ЦП на клиенте, но увеличивает число операций ввода-вывода.
|
Без кеширования | По умолчанию SymProxy кэширует загруженные символы в локальную файловую систему, путь которой определяется виртуальным каталогом.
|
MissTimeout | Период времени ожидания ( в секундах), для которого отсутствующие символы отображаются как отсутствующие без повторного запроса вышестоящих серверов символов. Пропуск связан со временем, основанным на UTC. Последующие запросы к файлу немедленно отклоняются в течение N секунд. Первый запрос файла после N секунд приводит к повторному запросу в хранилищах вышестоящих символов. При успешном выполнении возвращается файл символов и удаляется отсутствует. При сбое пропуск переносится на текущее время (в формате UTC), чтобы начать новый таймаут. Используйте счетчики производительности "Мисс Кэш" для отслеживания пропущенных ошибок.
|
MissAgeCheck | Период между проверками возраста мисс. Кэш "Мисс" сканируется, и записи, которые старше MissAgeTimeout секунд, удаляются. Текущая статистика сохраняется в журнале событий с помощью идентификатора события 4.
|
MissAgeTimeout | Время ожидания очистки каждой записи кэша мисс. Запись удалена из-за отсутствия каких-либо запросов на неё в течение этого периода.
|
БольшеНеИндексируетсяАвторитетно | Если этот параметр включен, ответ NoLongerIndexed file.ptr будет рассматриваться как авторитетный в всех хранилищах символов. Используйте это, чтобы избежать (ненужных) вызовов на серверы, которые не индексируют файл.
|
Перезапуск зависшего приложения | Включите повторную попытку для вышестоящих хранилищ символов HTTP. Это эквивалентно параметру SymSrv SSRVOPT_RETRY_APP_HANG (0x80000000). При получении кода ошибки 0x80070512/HRESULT_FROM_WIN32(ERROR_APP_HANG) через заголовок 'Symbol-Agent-Status' HTTP-ответа из внешнего HTTP-хранилища символов, сокет будет оставаться открытым, и GET-запрос будет повторяться до "N" раз. SymProxy объединяет несколько запросов для одного и того же URI. Когда время ожидания любого запроса достигает 25 секунд, SymProxy возвращает вызывающему 0x80070512 через HTTP-заголовок Symbol-Agent-Status, при этом продолжая её выполнение в фоновом режиме. Клиенты должны включить параметр SSRVOPT_RETRY_APP_HANG в SymSrv, чтобы поддерживать очень длинные запросы, по сути, объединяя повторные попытки в один процесс. SymProxy по умолчанию устанавливает время ожидания отклика на 25 секунд, чтобы ответ был получен до того, как сокет будет закрыт по истечении 30-секундного времени ожидания, используемого SymSrv для HTTP-хранилищ символов. Более поздние версии SymSrv отправляют настроенное значение времени ожидания HTTP через заголовок HTTP-запроса Symbol-Agent-Receive-Timeout (в mSec). Если указан этот заголовок HTTP-запроса, это значение используется вместо 25 секунд по умолчанию.
|
UriFilter | Включение фильтрации URI. Это эквивалентно параметру SymSrv SSRVOPT_URI_FILTER (0x20000000). Фильтрация URI уменьшает количество запросов ко всем вышестоящим хранилищам символов. Значения представляют собой битовую маску. HTTP - SSRVURI_HTTP_MASK (0x0F)
UNC — SSRVURI_UNC_MASK (0xF0)
|
UriTiers | Включите уровни URI. Это эквивалентно параметру SymSrv SSRVOPT_URI_TIERS (0x40000000). Все уровни URI обязывают использовать схему уровня, применяемую всеми вышестоящими хранилищами символов. Если этот параметр не задан, для определения схемы требуется дополнительный запрос. Наличие "index2.txt" в корне указывает на двухуровневую структуру. 1-уровневые хранилища форматируются: /widget.dll/<index>/widget.dll|widget.dl_|file.ptr 2-уровневые хранилища форматируются: /wi/widget.dll/<index>/widget.dll|widget.dl_|file.ptr
|
Доступ к внешним сетевым ресурсам
Если SymSrv используется в сочетании с SymProxy, он выполняется в качестве службы и использует API WinHTTP для доступа к символам через HTTP-подключение. Это отличается от обычного поведения использования WinInet для этой цели.
Следовательно, может потребоваться настроить параметры прокси-сервера HTTP, чтобы эта служба может получить доступ к внешним сетевым ресурсам. Используйте один из следующих методов для настройки этих параметров:
Используйте средство Netsh (netsh.exe). Введите следующие инструкции в окне командной строки:
netsh winhttp -?
Поведение SymProxy по умолчанию заключается в использовании HTTP-прокси, который назначен либо через ProxyCfg, либо через Netsh. Если прокси-сервер HTTP не настроен, SymProxy использует фиктивный прокси-сервер, чтобы разрешить доступ к защищенным HTTP-сайтам в интрасети. В качестве побочных эффектов этот метод предотвращает работу SymProxy с прямыми подключениями к внешнему Интернету. Если вы хотите разрешить SymProxy работать с прямым подключением к Интернету, создайте значение REG_DWORD с именем NoInternetProxy в разделе прокси-сервера символов реестра. Задайте для параметра NoInternetProxy значение 1 и убедитесь, что прокси-сервер HTTP не указан в ProxyCfg.