Freigeben über


HTTP-Symbol-Speicher

Durch die Verwendung des SRV-Protokolls, das von symsrv.dll (im Lieferumfang des Debuggers enthalten) unterstützt wird, kann der Zugriff auf den Symbolspeicher über HTTP (statt nur UNC/SMB) erfolgen.

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

Ein HTTP-Symbolserver kann kein nachgelagerter Speicher in einer Symbolpfadkette sein, da er nur schreibgeschützt ist. Der Symbol-Server-Proxy (ISAPI-Filter) umgeht diese Einschränkung. SymProxy lädt die fehlenden Dateien über vorkonfigurierte Upstream-Symbolspeicher in das Dateisystem des Servers herunter. Der Filter lädt die Datei in das Dateisystem herunter, was dem IIS die Möglichkeit bietet, die Datei auf den Client herunterzuladen, wodurch das Konzept der Verkettung von Symbolspeichern wiederhergestellt wird. Weitere Informationen finden Sie unter SymProxy.

Die Konfiguration 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 die Möglichkeit zu bieten, die Symboldateien als Binärstreams herunterzuladen. Dazu können Sie einen Platzhalter „*“ verwenden, der auf das virtuelle Verzeichnis des Symbolordners angewendet wird.

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

Hinweis Aufgrund der Art und Weise, wie IIS für die Bereitstellung von Symboldateien konfiguriert wird, ist es nicht empfehlenswert, dieselbe Instanz des Servers auch für andere Zwecke zu verwenden. In der Regel ergeben die gewünschten Sicherheitseinstellungen für einen Symbolserver keinen Sinn für andere Zwecke, z. B. für einen nach außen gerichteten Commerce-Server. Vergewissern Sie sich, dass die hier beschriebene Beispielkonfiguration für Ihre Umgebung einen Sinn ergibt, und passen Sie sie gegebenenfalls an Ihre speziellen Bedürfnisse an.

Erstellen des Symbolverzeichnisses

Beginnen Sie mit der Auswahl des Verzeichnisses, das Sie als Symbolspeicher verwenden möchten. In unseren Beispielen nennen wir dieses Verzeichnis c:\symstore, und der Name des Servers im Netzwerk lautet \SymMachineName.

Einzelheiten zum Einrichten Ihres Symbolspeichers finden Sie unter SymStore und Ordnerbaum des Symbolspeichers.

Konfigurieren von IIS

Internetinformationsdienste (IIS) muss für die Bereitstellung der Symbole konfiguriert werden, indem ein virtuelles Verzeichnis erstellt und die MIME-Typen konfiguriert werden. Nachdem dies geschehen ist, können Sie die Authentifizierungsmethode auswählen.

So erstellen Sie ein virtuelles Verzeichnis

  1. Öffnen Sie Internetinformationsdienste-Manager (IIS).

  2. Navigieren Sie zu Websites.

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

  4. Geben Sie Symbole für Alias ein, und klicken Sie auf Weiter.

    Um die Verwaltung zu vereinfachen, empfiehlt es sich, für den Ordner, die Freigabe und das virtuelle Verzeichnis denselben Namen zu verwenden.

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

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

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

Unterverzeichnis-Konfiguration

  1. Navigieren Sie zu [Computer].

  2. Öffnen Sie den Konfigurationseditor.

  3. Navigieren Sie zu System ApplicationHost/sites.

  4. Erweitern Sie virtualDirectoryDefaults.

  5. Legen Sie allowSubDirConfig auf Falsch fest.

Führen Sie diesen Vorgang einmal für den Server durch. Beachten Sie, dass dies eine globale Einstellung ist und sich auf Anwendungen auswirkt, die nicht im Root-Ordner einer Website gehostet werden.

Symboldateien optional durchsuchbar machen

  1. Navigieren Sie zu [Computer] | Sites | [Website] | Symbols.

  2. Doppelklicken Sie im mittleren Bereich auf Verzeichnisdurchsuchung.

  3. Klicken Sie auf Aktivieren im rechten Fensterbereich.

Der MIME-Typ für den heruntergeladenen Inhalt muss auf application/octet-stream festgelegt werden, um die Möglichkeit zu bieten, dass alle Symboldateien von IIS geliefert werden können.

MIME-Typen konfigurieren

  1. Klicken Sie mit der rechten Maustaste auf das virtuelle Verzeichnis Symbols, und wählen Sie Eigenschaften.

  2. Wählen Sie HTTP-Header.

  3. Klicken Sie auf MIME-Typen.

  4. Klicken Sie auf Neu.

  5. Geben Sie für Erweiterung* ein.

  6. Geben Sie für MIME-TypApplication/Octet-Stream ein.

  7. Um das Dialogfeld MIME-Typen zu verlassen, klicken Sie auf OK.

  8. Um Eigenschaften von Symbolen zu verlassen, klicken Sie auf OK.

Sie können die Datei web.config bearbeiten, um die MIME-Typen für Symbole zu konfigurieren. Bei dieser Vorgehensweise werden die geerbten MIME-Typen gelöscht und ein Wildcard * MIME-Typ als Catch-All hinzugefügt. Diese Vorgehensweise kann notwendig sein, wenn MIME-Typen in bestimmten IIS-Konfigurationen vererbt werden.

Verwendung von web.config zur Konfiguration von MIME-Typen

  1. Bearbeiten Sie die Datei web.config 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 ist nun bereit, Symboldateien aller Typen aus dem Symbolspeicher bereitzustellen.

Konfigurieren der Authentifizierung

Es ist möglich, IIS so zu konfigurieren, dass er die „Integrierte Windows-Authentifizierung“ verwendet, sodass sich Clients (z. B. windbg.exe) automatisch gegenüber IIS authentifizieren können, ohne Benutzende nach Anmeldeinformationen zu fragen.

Hinweis Konfigurieren Sie die Windows-Authentifizierung auf dem IIS nur dann zur Steuerung des Zugriffs auf den Symbolserver, wenn dies für Ihre Umgebung angemessen 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 (IIS) Manager.

  2. Navigieren Sie zu [Computer] | Sites | [Website] | Symbols.

  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 Windows-Authentifizierung, und wählen Sie Aktivieren.

  6. Für alle anderen Authentifizierungsanbieter klicken Sie mit der rechten Maustaste auf jeden Anbieter, und wählen Sie Deaktivieren.

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

Wenn die Windows-Authentifizierung nicht aufgeführt ist, verwenden Sie Windows-Funktionen ein- und ausschalten, um die Funktion zu aktivieren. Die Position der Funktion ist in jeder Version von Windows unterschiedlich. In Windows 8.1/Windows 2012 R2 befindet sie sich unter Internetinformationsdienste | World Wide Web-Dienste | Sicherheit.

Deaktivieren der Kerberos-Unterstützung

SymSrv.dll unterstützt die Kerberos-Authentifizierung bei der Verbindung mit IIS nicht. Daher muss die Kerberos-Authentifizierung in IIS deaktiviert und NTLM als einziges Windows-Authentifizierungsprotokoll festgelegt werden.

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

Deaktivieren der Kerberos-Unterstützung mit appcmd.exe

  1. Öffnen Sie ein Eingabeaufforderungsfenster.

  2. Um Kerberos zu deaktivieren und die Verwendung von NTLM zu erzwingen, verwenden Sie diesen Befehl:

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

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

Konfiguration der Client-Authentifizierungsdialogfenster von SymSrv

Wenn SymSrv-Authentifizierungsanfragen erhält, kann der Debugger je nach Konfiguration entweder das Dialogfeld für die Authentifizierung anzeigen oder die Anfrage automatisch ablehnen. Sie können dieses Verhalten mit !sym prompts on|off konfigurieren. Um zum Beispiel Aufforderungen einzuschalten, verwenden Sie diesen Befehl.

!sym prompts on

Um die aktuelle Einstellung zu überprüfen, verwenden Sie diesen Befehl.

!sym prompts

Weitere Informationen finden Sie unter !sym und Firewalls und Proxy-Server.