SymProxy の自動インストール
以下のInstall.cmd スクリプトと共にこれらの手順は、既定の IIS インストールへの SymProxy のインストールを自動化するのに役立ちます。 これらの手順は、環境の特定のニーズに合わせる必要があります。
D:\SymStore\Symbols フォルダーを作成します。
すべてのユーザーの読み取りを許可します。
SymProxy アプリ プールのユーザー アカウント (Domain\User) に読み取り/書き込みを許可する
D:\SymStore\Symbols をシンボルとして共有します。
- すべてのユーザーに読み取りを許可する (またはより具体的にする)
(必要に応じて)D:\SymStore\Symbols に index2.txt という名前の空のファイルを作成します。
(必要に応じて)\system32\inetsrv\symsrv.yes %WINDIR%という名前の空のファイルを作成します。 これは、Microsoft パブリック シンボル ストアの EULA を受け入れます。
Install.cmdのパラメーターを決定して実行します。
作成したサーバー名を使用して、クライアント シンボル パスを構成します。
SRV*\\MachineName\Symbols*https://MachineName/Symbols
Install.cmd スクリプトには、次の 3 つのパラメーターが必要です。
- 仮想ディレクトリ パス (例: D:\SymStore\Symbols)
- ユーザー名 (アプリケーション プール用)
- パスワード (アプリケーション プール用)
MIME の種類の継承をクリアするには、関連付けられている AppCmd.exe コマンドを実行するために XML ファイルが必要です。 この結果を得るには、次に示す staticContentClear.xml ファイルを Install.cmd スクリプトと同じフォルダーに配置します。
Install.Cmd パラメーターの使用方法の例:
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>
SymProxy インストールのテスト
これで、システムはファイルを取得して提供する準備が整いました。 テストするには、まず、iisreset.exeを実行して IISAdmin サービスを再起動します。 これにより、現在の IIS と SymProxy 構成で ISAPI フィルターが再読み込みされます。
次のシンボル パスを使用するようにデバッガーを構成します。
srv*\\MachineName\Symbols*https://MachineName/Symbols
MissTimeout が有効になっている場合 (既定では 300 秒に設定されています)、.reload /f コマンドを 2 回実行すると、2 回目の実行がはるかに高速になります。
参照されている PDB の場所を表示するには、lm (list modules) コマンドを使用します。 PDB へのパスはすべて \\MachineName\Symbols で始まる必要があります。
Web サイトでディレクトリ参照が有効になっている場合は、https://MachineName/Symbols を参照して、キャッシュされているファイルを確認します。
パフォーマンス モニターを開き、シンボル プロキシ カウンターを表示します。
イベント ビューアーを開き、Microsoft\Windows\SymProxy イベントを表示します。