Freigeben über


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.

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

    • Allen Lesezugriff gewähren

    • Dem Benutzerkonto „SymProxy App Pool“ (Domäne\Benutzer) Lese-/Schreibzugriff gewähren

  2. D:\SymStore\Symbols als Symbole freigeben.

    • Lesezugriff für alle (oder spezifischer) gewähren
  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. Dies akzeptiert die EULA für den Microsoft Public Symbol Store.

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

  6. 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.

Weitere Informationen

Installieren von SymProxy