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.
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)
Teilen Sie D:\SymStore\Symbols als Symbole.
- Allen Lesezugriff gewähren (oder spezifischer sein)
(Optional) Erstellen Sie eine leere Datei namens index2.txt in D:\SymStore\Symbols.
(Optional) Erstellen Sie eine leere Datei namens %WINDIR%\system32\inetsrv\symsrv.yes. Dadurch wird der EULA für den Microsoft Public Symbol Store akzeptiert.
Bestimmen Sie die Parameter für Install.cmd, und führen Sie sie aus.
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.