Автоматическая установка SymProxy

Эти действия вместе с приведенным ниже скриптом Install.cmd помогут автоматизировать установку SymProxy в установку IIS по умолчанию. Скорее всего, вам потребуется адаптировать эти шаги к конкретным потребностям вашей среды.

  1. Создайте папку D:\SymStore\Symbols.

    • Предоставление права чтения всем

    • Предоставьте права чтения и записи учетной записи пользователя пула приложений SymProxy (Домен\Пользователь)

  2. Совместное использование D:\SymStore\Symbols в качестве символов.

    • Предоставьте разрешение на чтение всем (или будьте более конкретными)
  3. (Необязательно) Создайте пустой файл с именем index2.txt в D:\SymStore\Symbols.

  4. (Необязательно) Создайте пустой файл с именем %WINDIR%\system32\inetsrv\symsrv.yes. Это принимает лицензионное соглашение для Общедоступного хранилища символов Майкрософт.

  5. Определите параметры для Install.cmd и запустите его.

  6. Настройте путь к символам клиентов, используя имя сервера, которое вы создали.

    SRV*\\MachineName\Symbols*https://MachineName/Symbols
    

Для скрипта Install.cmd требуется 3 параметра:

  • Путь к виртуальному каталогу (например, D:\SymStore\Symbols)
  • Имя пользователя (для пула приложений)
  • Пароль (для пула приложений)

Чтобы очистить наследование типов MIME, требуется xml-файл для управления связанной командой AppCmd.exe. Поместите файл staticContentClear.xml ниже в ту же папку, что и скрипт Install.cmd для достижения этого результата.

Пример использования параметра Install.Cmd:

Install.cmd D:\SymStore\Symbols CONTOSO\SymProxyService Pa$$word

Install.cmd

@echo off

SET VirDirectory=%1
SET UserName=%2
SET Password=%3

::
::  SymProxy dll installation. 
::

copy symproxy.dll %windir%\system32\inetsrv
copy symproxy.man %windir%\system32\inetsrv
copy symsrv.dll %windir%\system32\inetsrv

lodctr.exe /m:%windir%\system32\inetsrv\symproxy.man
wevtutil.exe install-manifest %windir%\System32\inetsrv\symproxy.man
regedit.exe /s symproxy.reg

::
::  Web server Configuration
::

IF not exist %VirDirectory% mkdir %VirDirectory%

rem Make the 'Default Web Site'
%windir%\system32\inetsrv\appcmd.exe add site -site.name:"Default Web Site" -bindings:"http/*:80:" -physicalPath:C:\inetpub\wwwroot

rem Enabled Directory Browsing on the 'Default Web Site'
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/directoryBrowse /enabled:"True"

rem Make the 'SymProxy App Pool'
%windir%\system32\inetsrv\appcmd.exe add apppool -apppool.name:SymProxyAppPool -managedRuntimeVersion:
%windir%\system32\inetsrv\appcmd.exe set apppool -apppool.name:SymProxyAppPool -processModel.identityType:SpecificUser -processModel.userName:%UserName% -processModel.password:%Password% 

rem Make the 'Symbols' Virtual Directory and assign the 'SymProxy App Pool'
%windir%\system32\inetsrv\appcmd.exe add app -site.name:"Default Web Site" -path:/Symbols -physicalpath:%VirDirectory%
%windir%\system32\inetsrv\appcmd.exe set app -app.name:"Default Web Site/Symbols" -applicationPool:SymProxyAppPool

rem Disable 'web.config' for folders under virtual directories in the 'Default Web Site'
%windir%\system32\inetsrv\appcmd.exe set config -section:system.applicationHost/sites "/[name='Default Web Site'].virtualDirectoryDefaults.allowSubDirConfig:false

rem Add the 'SymProxy ISAPI Filter'
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/isapiFilters /+"[name='SymProxy',path='%windir%\system32\inetsrv\SymProxy.dll',enabled='True']

rem Clear the MIME Types on the 'Default Web Site'
%windir%\system32\inetsrv\appcmd.exe set config -in "Default Web Site" < staticContentClear.xml

rem Add * to the MIME Types of the 'Default Web Site'
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:staticContent /+"[fileExtension='.*',mimeType='application/octet-stream']"

staticContentClear.xml

<?xml version="1.0" encoding="UTF-8"?>
<appcmd>
    <CONFIG CONFIG.SECTION="system.webServer/staticContent"                  path="MACHINE/WEBROOT/APPHOST">
        <system.webServer-staticContent>
            <clear />
        </system.webServer-staticContent>
    </CONFIG>
</appcmd>    

Тестирование установки SymProxy

Теперь система должна быть готова к получению и использованию файлов. Чтобы протестировать его, начните с перезапуска службы IISAdmin, выполнив iisreset.exe. Это перезагрузит фильтр ISAPI с текущей конфигурацией IIS и SymProxy.

Настройте отладчик для использования этого пути символа:

srv*\\MachineName\Symbols*https://MachineName/Symbols

Если включена MissTimeout (по умолчанию установлено значение 300 секунд), выполнение команды .reload /f дважды должно привести к более быстрому выполнению во второй раз.

Чтобы просмотреть расположение PDB-файлов, на которые имеются ссылки, используйте команду lm (список модулей). Путь к PDB-файлам должен начинаться с \\MachineName\Symbols.

Если просмотр каталогов включен на веб-сайте, перейдите к https://MachineName/Symbols, чтобы просмотреть кэшированные файлы.

Откройте монитор производительности и просмотрите счетчики Symbol Proxy.

Откройте средство просмотра событий и просмотрите события Microsoft\Windows\SymProxy.

См. также

Инсталляция SymProxy