Freigeben über


HTTP-Symbol-Speicher

Mithilfe des SRV-Protokolls, das über symsrv.dll (ausgeliefert mit Debugger) unterstützt wird, kann über HTTP (anstelle von UNC/SMB) auf den Symbolspeicher zugegriffen werden.

HTTP wird häufig anstelle von SMB verwendet, wenn eine Firewall SMB nicht zwischen dem Client und dem Server zulässt. Produktions- und Lab-Umgebungen sind gute Beispiele dafür.

Ein HTTP-Symbolserver kann aufgrund seiner schreibgeschützten Natur kein nachgelagerter Speicher in einer Symbolpfadkette sein. Der Symbolserverproxy (ISAPI-Filter) funktioniert um diesen Grenzwert. SymProxy lädt die fehlenden Dateien mithilfe von vorkonfigurierten Upstreamsymbolspeichern in das Dateisystem des Servers herunter. Der Filter lädt die Datei in das Dateisystem herunter, sodass IIS die Datei auf den Client herunterladen kann, wodurch das Konzept der Symbolspeicherkette wiederhergestellt wird. Weitere Informationen finden Sie unter SymProxy .

Das Konfigurieren von IIS als Symbolspeicher ist relativ einfach, da die Symboldateien nur als statische Dateien bereitgestellt werden. Die einzige nicht standardmäßige Einstellung ist die Konfiguration der MIME-Typen, um den Download der Symboldateien als binäre Datenströme zuzulassen. Dazu kann ein "*" (Sternchen) als Wildcard verwendet werden, das auf das virtuelle Verzeichnis des Symbolordners angewendet wird.

Um einen Symbolspeicher über das Internet zugänglich zu machen, müssen Sie sowohl die Verzeichnisse konfigurieren, die die Symboldateien enthalten, als auch Internetinformationsdienste (Internet Information Services, IIS).

Anmerkung Aufgrund der Art und Weise, wie IIS für die Bereitstellung von Symboldateien konfiguriert wird, wird nicht empfohlen, die gleiche Serverinstanz für andere Zwecke zu verwenden. In der Regel sind die gewünschten Sicherheitseinstellungen für einen Symbolserver für andere Verwendungen nicht sinnvoll, z. B. für einen externen Commerce-Server. Stellen Sie sicher, dass die hier beschriebene Beispielkonfiguration für Ihre Umgebung sinnvoll ist, und passen Sie sie entsprechend Ihren spezifischen Anforderungen an.

Erstellen des Symbolverzeichnisses

Wählen Sie zunächst das Verzeichnis aus, das Sie als Symbolspeicher verwenden. In unseren Beispielen rufen wir dieses Verzeichnis "c:\symstore" auf, und der Name des Servers im Netzwerk lautet "\SymMachineName".

Ausführliche Informationen zum Auffüllen Ihres Symbolspeichers finden Sie unter SymStore und Symbol Store-Ordnerstruktur.

Konfigurieren von IIS

Internetinformationsdienste (Internet Information Services, IIS) müssen so konfiguriert werden, dass sie die Symbole bereitstellen, indem sie ein virtuelles Verzeichnis erstellen und MIME-Typen konfigurieren. Nachdem dies geschehen ist, kann die Authentifizierungsmethode ausgewählt werden.

So erstellen Sie ein virtuelles Verzeichnis

  1. Öffnen Sie das Dialogfeld Internetinformationsdienste-Manager.

  2. Navigieren Sie zu Websites.

  3. Klicken Sie mit der rechten Maustaste auf "Standardwebsite" oder auf den Namen der verwendeten Website, und wählen Sie "Virtuelles Verzeichnis hinzufügen" aus.

  4. Geben Sie Symbole für Aliasein, und klicken Sie auf "Weiter".

    Um die Verwaltung zu erleichtern, wird empfohlen, denselben Namen für den Ordner, die Freigabe und das virtuelle Verzeichnis zu verwenden.

  5. Geben Sie für den Pfad"c:\SymStore " ein, und klicken Sie auf "Weiter".

  6. Klicken Sie auf "OK ", um das Hinzufügen des virtuellen Verzeichnisses abzuschließen.

Führen Sie den Konfigurationsprozess des Unterverzeichnisses einmal für den Server aus. Beachten Sie, dass dies eine globale Einstellung ist und sich auf Anwendungen auswirkt, die nicht im Stammordner einer Website gehostet werden.

Konfiguration des Unterverzeichnisses

  1. Navigieren Sie zu [Computer].

  2. Öffnen Sie den Konfigurations-Editor.

  3. Navigieren Sie zu System/ApplicationHost/Sites.

  4. Erweitern Sie virtualDirectoryDefaults.

  5. Legen Sie "allowSubDirConfig" auf "False" fest.

Führen Sie diesen Vorgang einmal für den Server aus. Beachten Sie, dass es sich hierbei um eine globale Einstellung handelt und sich auf Anwendungen auswirkt, die nicht im Stammordner einer Website gehostet werden.

Optionalerweise können die Symboldateien durchsucht werden

  1. Navigieren Sie zu [Computer] | Websites | [Website] | Symbole.

  2. Doppelklicken Sie im mittleren Bereich auf Verzeichnisbrowsen .

  3. Klicken Sie im rechten Bereich auf "Aktivieren ".

Der MIME-Typ für den heruntergeladenen Inhalt muss auf "Application/Octet-stream" festgelegt werden, damit alle Symboldateien von IIS bereitgestellt werden können.

Konfigurieren von MIME-Typen

  1. Klicken Sie mit der rechten Maustaste auf das virtuelle Symbolverzeichnis , und wählen Sie "Eigenschaften" aus.

  2. Wählen Sie HTTP-Header aus.

  3. Klicken Sie auf MIME-Typen.

  4. Klicken Sie auf Neu.

  5. Geben Sie *für Erweiterung ein.

  6. Geben Sie für DEN MIME-Typ"application/octet-stream" ein.

  7. Klicken Sie auf "OK", um das Dialogfeld "MIME-Typen" zu beenden.

  8. Klicken Sie auf OK, um Eigenschaften von Symbolen zu schließen.

Sie können die web.config Datei bearbeiten, um MIME-Typen für Symbole zu konfigurieren. Dieser Ansatz löscht die geerbten MIME-Typen und fügt einen Catch-All-Wildcard-* MIME-Typ hinzu. Dieser Ansatz kann erforderlich sein, wenn MIME-Typen in bestimmten IIS-Konfigurationen geerbt werden.

Verwenden von web.config zum Konfigurieren von MIME-Typen

  1. Bearbeiten Sie die web.config Datei wie hier gezeigt.

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <directoryBrowse enabled="true" />
            <staticContent>
                <clear />
                <mimeMap fileExtension=".*" 
    mimeType="application/octet-stream" />
            </staticContent>
        </system.webServer>
    </configuration>
    
  2. Starten Sie IIS neu.

IIS kann nun Symboldateien aller Typen aus dem Symbolspeicher bereitstellen.

Konfigurieren der Authentifizierung

Es ist möglich, IIS so zu konfigurieren, dass "Integrierte Windows-Authentifizierung" verwendet wird, sodass Clients ( z. B.windbg.exe) sich automatisch bei IIS authentifizieren können, ohne den Endbenutzer zur Eingabe von Anmeldeinformationen aufzufordern.

Anmerkung Konfigurieren Sie die Windows-Authentifizierung in IIS nur, um den Zugriff auf den Symbolserver zu steuern, falls dies für Ihre Umgebung geeignet ist. Es stehen weitere Sicherheitsoptionen zur Verfügung, um den Zugriff auf IIS weiter zu steuern, wenn dies für Ihre Umgebung erforderlich ist.

So konfigurieren Sie die Authentifizierungsmethode als anonym

  1. Starten Sie den Internetinformationsdienste-Manager (IIS).

  2. Navigieren Sie zu [Computer] | Websites | [Website] | Symbole.

  3. Doppelklicken Sie im mittleren Bereich auf "Authentifizierung ".

  4. Klicken Sie unter "Authentifizierung" und "Zugriffssteuerung" auf "Bearbeiten".

  5. Klicken Sie mit der rechten Maustaste auf die Windows-Authentifizierung , und wählen Sie "Aktivieren" aus.

  6. Klicken Sie bei allen anderen Authentifizierungsanbietern mit der rechten Maustaste auf jeden Anbieter, und wählen Sie "Deaktivieren" aus.

  7. Klicken Sie auf "OK ", um die Konfiguration der Authentifizierung abzuschließen.

Wenn die Windows-Authentifizierung nicht aufgeführt ist, verwenden Sie Windows-Features aktivieren oder deaktivieren, um das Feature zu aktivieren. Der Speicherort des Features unterscheidet sich in jeder Windows-Version. In Windows 8.1/Windows 2012 R2 befindet es sich unter Internetinformationsdienste | World Wide Web Services | Sicherheit.

Kerberos-Unterstützung deaktivieren

SymSrv.dll unterstützt beim Herstellen einer Verbindung mit IIS keine Kerberos-Authentifizierung. Daher muss die Kerberos-Authentifizierung in IIS deaktiviert sein, und NTLM muss als einziges Windows-Authentifizierungsprotokoll festgelegt werden.

Anmerkung Deaktivieren Sie die Kerberos-Sicherheit nur, wenn dies für Ihre Umgebung geeignet ist.

Deaktivieren der Kerberos-Unterstützung mithilfe von appcmd.exe

  1. Öffnen eines Eingabeaufforderungsfensters

  2. Verwenden Sie den folgenden Befehl, um Kerberos zu deaktivieren und die Verwendung von NTLM zu erzwingen:

    appcmd.exe set config -section:system.webServer/security/authentication/windowsAuthentication /+"providers.[value='NTLM']" /commit:apphost
    
  3. Um zum Standardwert zurückzukehren, bei dem Kerberos aktiviert ist, verwenden Sie den folgenden Befehl:

    appcmd.exe set config -section:system.webServer/security/authentication/windowsAuthentication /+"providers.[value='Negotiate,NTLM']" /commit:apphost
    

Konfigurieren von SymSrv-Clientauthentifizierungsaufforderungen

Wenn SymSrv Authentifizierungsanforderungen empfängt, kann der Debugger entweder das Authentifizierungsdialogfeld anzeigen oder die Anforderung automatisch ablehnen, je nachdem, wie sie konfiguriert wurde. Sie können dieses Verhalten mithilfe von !sym-Eingabeaufforderungen auf|off konfigurieren. Um Eingabeaufforderungen zu aktivieren, verwenden Sie z. B. diesen Befehl.

!sym prompts on

Verwenden Sie diesen Befehl, um die aktuelle Einstellung zu überprüfen.

!sym prompts

Weitere Informationen finden Sie unter !sym und Firewalls und Proxyserver.