Freigeben über


Automatisierte SymProxy-Installation

Diese Schritte zusammen mit dem unten aufgeführten Skript Install.cmd können helfen, die Installation von SymProxy auf eine IIS-Standardinstallation zu automatisieren. Sie müssen diese Schritte wahrscheinlich an die spezifischen Anforderungen Ihrer Umgebung anpassen.

  1. Erstellen Sie den Ordner D:\SymStore\Symbols.

    • Allen Lesezugriff gewähren

    • Gewähren von Read\Write für das SymProxy-App-Pool-Benutzerkonto (Domäne\Benutzer)

  2. Teilen Sie D:\SymStore\Symbols als Symbole.

    • Allen Lesezugriff gewähren (oder spezifischer sein)
  3. (Optional) Erstellen Sie eine leere Datei namens index2.txt in D:\SymStore\Symbols.

  4. (Optional) Erstellen Sie eine leere Datei namens %WINDIR%\system32\inetsrv\symsrv.yes. Dadurch wird der EULA für den Microsoft Public Symbol Store akzeptiert.

  5. Bestimmen Sie die Parameter für Install.cmd, und führen Sie sie aus.

  6. Konfigurieren Sie den Clientsymbolpfad mithilfe des von Ihnen erstellten Servernamens.

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

Für das Skript Install.cmd sind 3 Parameter erforderlich:

  • Pfad des virtuellen Verzeichnisses (z. B. D:\SymStore\Symbols)
  • Benutzername (für den Anwendungspool)
  • Kennwort (für den Anwendungspool)

Um die MIME-Typvererbung zu löschen, ist eine XML-Datei erforderlich, um den zugeordneten AppCmd.exe-Befehl zu steuern. Platzieren Sie die unten gezeigte staticContentClear.xml-Datei im selben Ordner wie das Skript Install.cmd, um dieses Ergebnis zu erzielen.

Beispiel für die Verwendung des Install.Cmd-Parameters:

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>    

Testen der SymProxy-Installation

Das System sollte nun zum Abrufen und Bereitstellen von Dateien bereit sein. Um es zu testen, starten Sie zunächst den IISAdmin-Dienst neu, indem Sie iisreset.exe ausführen. Dadurch wird der ISAPI-Filter mit der aktuellen IIS- und SymProxy-Konfiguration neu geladen.

Konfigurieren Sie einen Debugger für die Verwendung dieses Symbolpfads:

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

Wenn MissTimeout aktiviert ist (standardmäßig auf 300 Sekunden festgelegt), sollte die zweimaliges Ausführen des Befehls .reload /f zum zweiten Mal zu einer viel schnelleren Ausführung führen.

Verwenden Sie den Befehl lm (list modules), um den Speicherort der PDBs anzuzeigen, auf die verwiesen wird. Der Pfad zu den PDBs sollte alle mit \\MachineName\Symbols beginnen.

Wenn die Verzeichnissuche auf der Website aktiviert ist, navigieren Sie zu, um https://MachineName/Symbols die zwischengespeicherten Dateien anzuzeigen.

Öffnen Sie die Leistungsmonitor, und zeigen Sie die Indikatoren für Den Symbolproxy an.

Öffnen Sie die Ereignisanzeige, und zeigen Sie die Ereignisse Microsoft\Windows\SymProxy an.

Siehe auch

Installieren von SymProxy