HTTP シンボル ストア

symsrv.dll (デバッガーに付属) でサポートされている SRV プロトコルを使用すると、(UNC/S MB (メガバイト) ではなく) HTTP を使用してシンボル ストアにアクセスできます。

HTTP は、ファイアウォールでクライアントとサーバーの間で S MB (メガバイト) が許可されていない場合に、S MB (メガバイト) の代わりに一般的に使用されます。 運用環境とラボ環境は、この良い例です。

HTTP シンボル サーバーは、読み取り専用であるため、シンボル パス チェーン内のダウンストリーム ストアにすることはできません。 シンボル サーバー プロキシ (ISAPI フィルター) は、この制限を回避します。 SymProxy は、事前構成済みのアップストリーム シンボル ストアを使用して、不足しているファイルをサーバーのファイル システムにダウンロードします。 フィルターによってファイルがファイル システムにダウンロードされ、IIS はファイルをクライアントにダウンロードできるため、シンボル ストア チェーンの概念が復元されます。 詳細については、SymProxyに関する記事を参照してください。

シンボル ファイルは静的ファイルとして提供されるだけなので、IIS をシンボル ストアとして構成するのは比較的簡単です。 既定以外の設定は、シンボル ファイルをバイナリ ストリームとしてダウンロードできるようにするための MIME タイプの構成のみです。 これは、シンボル フォルダーの仮想ディレクトリに適用される "*" ワイルドカードを使用して行うことができます。

インターネット経由でシンボル ストアにアクセスできるようにするには、シンボル ファイルを含むディレクトリと インターネット インフォメーション サービス (IIS) の両方を構成する必要があります。

注: シンボル ファイルを提供するように IIS を構成する方法のため、同じサーバー インスタンスを他の目的で使用することはお勧めしません。 通常、シンボル サーバーに必要なセキュリティ設定は、外部向けのコマース サーバーなど、他の用途には意味がありません。 ここで説明するサンプル構成が環境に適していることを確認し、特定のニーズに合わせて調整します。

シンボル ディレクトリの作成

まず、シンボル ストアとして使用するディレクトリを選択します。 この例では、このディレクトリを c:\symstore と呼び、ネットワーク上のサーバーの名前は \SymMachineName です。

シンボル ストアを設定する方法の詳細については、「SymStoreシンボル ストア フォルダー ツリー」を参照してください。

IIS の構成

インターネット インフォメーション サービス (IIS) は、仮想ディレクトリを作成し、MIME の種類を構成することによってシンボルを提供するように構成する必要があります。 これが完了したら、認証方法を選択できます。

仮想ディレクトリを作成するには。

  1. [インターネット インフォメーション サービス (IIS) マネージャー] を開きます。

  2. Web サイトに移動します。

  3. [既定の Web サイト] または使用しているサイトの名前を右クリックし、[仮想ディレクトリの追加...] を選択します。

  4. エイリアスシンボルを入力し、[次へ] をクリックします。

    管理を容易にするために、フォルダー、共有、仮想ディレクトリに同じ名前を使用することをお勧めします。

  5. [パス] に「c:\SymStore」と入力し、[次へ] をクリックします。

  6. [OK] をクリックして仮想ディレクトリの追加を完了します。

サーバーに対してサブディレクトリ構成プロセスを 1 回実行します。 これはグローバル設定であり、サイトのルート フォルダーにホストされていないアプリケーションに影響します。

サブディレクトリの構成

  1. [コンピューター] に 移動します。

  2. 構成エディターを 開きます。

  3. System ApplicationHost/sites に移動します。

  4. virtualDirectoryDefaults を展開 します。

  5. allowSubDirConfigFalse に設定します。

サーバーに対してこのプロセスを 1 回実行します。 これはグローバル設定であり、サイトのルート フォルダーにホストされていないアプリケーションに影響します。

必要に応じて、シンボル ファイルを参照可能にする

  1. [コンピューター] |サイト |[Web サイト] |シンボルに 移動する。

  2. 中央のペインで [ディレクトリの参照 ] をダブルクリック します。

  3. 右側のペインで [有効化]をクリックします。

すべてのシンボル ファイルを IIS で配信できるようにするには、ダウンロードしたコンテンツの MIME の種類を application/octet-stream に設定する必要があります。

MIME の種類の構成

  1. [シンボル] 仮想ディレクトリを右クリックし、[プロパティ] を選択します。

  2. HTTP Headers を選択します。

  3. [MIME の種類] をクリックします。

  4. 新規 をクリックします。

  5. 内線番号には、*と入力します。

  6. [MIME の種類] には、"application/octet-stream" と入力します。

  7. [MIME の種類] ダイアログ ボックスを閉じるには、[OK] をクリックします。

  8. [シンボルのプロパティ] を終了するには、[OK] をクリックします。

web.config ファイルを編集して、シンボルの MIME の種類を構成できます。 この方法では、継承された MIME の種類が消去され、MIME の種類としてキャッチオール ワイルド カード * が追加されます。 この方法は、特定の IIS 構成で MIME の種類が継承されている場合に必要になる場合があります。

web.config を使用した MIME の種類の構成

  1. 以下に示すように web.config ファイルを編集します。

    <?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. IIS を再開します。

IIS は、シンボル ストアからすべての種類のシンボル ファイルを提供する準備ができました。

認証の設定

クライアント (windbg.exe など) がエンド ユーザーに資格情報の入力を求めることなく IIS に対して自動的に認証できるように、"統合 Windows 認証" を使用するように IIS を構成できます。

注: お使いの環境に適している場合にのみ、シンボル サーバーへのアクセスを制御するように IIS で Windows 認証を構成します。 お使いの環境に必要な場合は、IIS へのアクセスをさらに制御するために使用できるその他のセキュリティ オプションがあります。

認証方法を匿名として構成するには

  1. インターネット インフォメーション サービス (IIS) マネージャーを起動します。

  2. [コンピューター] |サイト |[Web サイト] |シンボルに 移動する。

  3. 中央のペインで [認証 ] をダブルクリック します。

  4. 認証とアクセス制御で、編集をクリックします。

  5. [Windows 認証]を右クリックし、 [有効]をクリックします。

  6. 他のすべての認証プロバイダーの場合は、各プロバイダーを右クリックし、[無効] を選択 します。

  7. [OK] をクリック して認証の構成を完了します 。

[ウィンドウ認証] が一覧にない場合は、Windows 機能のオンとオフ を切 り替 えて機能を有効にします。 機能の場所は、Windows の各バージョンで異なります。 Windows 8.1/Windows 2012 R2 では、インターネット インフォメーション サービス |World Wide Web サービス |セキュリティ。

Kerberos サポートを無効にする

SymSrv.dllは、IIS に接続するときに Kerberos 認証をサポートしていません。 そのため、IIS では Kerberos 認証を無効にする必要があり、NTLM は唯一の Windows 認証プロトコルとして設定する必要があります。

注: Kerberos セキュリティが環境に適している場合にのみ無効にします。

appcmd.exeを使用して Kerberos サポートを無効にする

  1. コマンド プロンプト ウィンドウを開く

  2. Kerberos を無効にして NTLM を強制的に使用するには、次のコマンドを使用します。

    appcmd.exe set config -section:system.webServer/security/authentication/windowsAuthentication /+"providers.[value='NTLM']" /commit:apphost
    
  3. Kerberos を有効にして既定値に戻すには、次のコマンドを使用します。

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

SymSrv クライアント認証プロンプトの構成

SymSrv が認証要求を受信すると、デバッガーは認証ダイアログ ボックスを表示するか、構成方法に応じて要求を自動的に拒否できます。 この動作は、!sym プロンプトのオン/オフを使用して構成できます。 たとえば、プロンプトをオンにするには、次のコマンドを使用します。

!sym prompts on

現在の設定をチェックするには、次のコマンドを使用します。

!sym prompts

詳細については、「!symファイアウォールとプロキシ サーバー」を参照してください。