Automatisierte Installation von SymProxy
Diese Schritte zusammen mit dem folgenden 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
Dem Benutzerkonto „SymProxy App Pool“ (Domäne\Benutzer) Lese-/Schreibzugriff gewähren
D:\SymStore\Symbols als Symbole freigeben.
- Lesezugriff für alle (oder spezifischer) gewähren
(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. Dies akzeptiert die EULA für den Microsoft Public Symbol Store.
Bestimmen Sie die Parameter für Install.cmd, und führen Sie sie aus.
Konfigurieren Sie den Clientsymbolpfad mit dem von Ihnen erstellten Servernamen.
SRV*\\MachineName\Symbols*https://MachineName/Symbols
Das skript Install.cmd erfordert drei Parameter:
- Virtueller Verzeichnispfad (z. B. D:\SymStore\Symbols)
- Benutzername (für den Anwendungspool)
- Kennwort (für den Anwendungspool)
Um die MIME-Typvererbung zu löschen, wird eine XML-Datei benötigt, 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 jetzt bereit sein, Dateien zu erwerben und zu bedienen. Zum Testen starten Sie zunächst den IISAdmin-Dienst neu, indem Sie iisreset.exeausfü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 das zweimalige Ausführen des Befehls „.reload /f“ dazu führen, dass der Befehl beim zweiten Mal wesentlich schneller ausgeführt wird.
Verwenden Sie den lm-Befehl („list modules“, Module auflisten), um den Speicherort der PDBs anzuzeigen, auf die verwiesen wird. Der Pfad zu den PDBs sollte alle mit \\MachineName\Symbols beginnen.
Wenn das Verzeichnisbrowsen auf der Website aktiviert ist, navigieren Sie zu https://MachineName/Symbols, um die zwischengespeicherten Dateien anzuzeigen.
Öffnen Sie den Systemmonitor, und prüfen Sie die Zähler des Symbolproxys.
Öffnen Sie die Ereignisanzeige, und zeigen Sie die Microsoft\Windows\SymProxy-Ereignisse an.