Bagikan melalui


Mengonfigurasi Registri

SymProxy menyimpan pengaturannya di kunci registri ini.

HKLM/Software/Microsoft/Symbol Server Proxy

Kunci registri ini mengontrol lokasi untuk menemukan simbol untuk disimpan di situs Web, tingkat pengelogan, dan apakah SymProxy beroperasi dengan koneksi langsung ke jaringan atau tidak. Anda dapat membuat kunci ini dengan menjalankan alat pendaftaran SymProxy (Symproxy.reg) yang disediakan dengan Alat Penelusuran Kesalahan untuk Windows. Ketik symproxy.reg pada prompt perintah atau klik dua kali dari Windows Explorer.

Ini akan menambahkan entri untuk pengaturan yang akan diawali dengan "x" sehingga dinonaktifkan. Untuk mengaktifkan pengaturan, hapus "x" dari depan pengaturan yang diinginkan.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy]
"Available Settings"="Remove the 'x' prefix to use the setting"
"xMissAgeTimeout"=dword:00015180
"xMissAgeCheck"=dword:00000e10
"xMissTimeout"=dword:00000e10
"xNoCache"=dword:00000001
"xNoFilePointers"=dword:00000001
"xNoInternetProxy"=dword:00000001
"xNoLongerIndexedAuthoritive"=dword:00000001
"xNoUncompress"=dword:00000001
"xRequestTimeout"=dword:0000019
"xRetryAppHang"=dword:0000002
"xUriFilter"=dword:00000FF
"xUriTiers"=dword:0000001

File registri symproxy.reg mengasumsikan nama direktori virtual Simbol dan mengonfigurasi Jalur Simbol untuk menggunakan Server Simbol Publik Microsoft.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Symbol Server Proxy\Web Directories\Symbols]
"SymbolPath"="https://msdl.microsoft.com/download/symbols"

Entri pengelogan peristiwa di symproxy.reg dibahas terakhir di bagian Log Peristiwa dari topik ini.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Microsoft-Windows-SymProxy]
"ProviderGuid"="{0876099c-a903-47ff-af14-52035bb479ef}"
"EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\
  00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
  5c,00,69,00,6e,00,65,00,74,00,73,00,72,00,76,00,5c,00,53,00,79,00,6d,00,50,\
  00,72,00,6f,00,78,00,79,00,2e,00,64,00,6c,00,6c,00,00,00
"TypesSupported"=dword:00000007

Entri direktori web di symproxy.reg dibahas dalam topik ini.

Direktori Web

Untuk setiap direktori virtual yang dihasilkan di IIS yang Anda gunakan sebagai penyimpanan simbol, Anda harus menyiapkan kunci registri di bawah subkuntah Direktori Web dari kunci registri berikut.

HKLM/Software/Microsoft/Symbol Server Proxy

Untuk mengedit kunci registri untuk direktori virtual penyimpanan simbol

  • Edit konten SymbolPath untuk berisi semua penyimpanan simbol yang digunakan oleh penyimpanan simbol SymProxy. Jika ada lebih dari satu penyimpanan simbol yang digunakan, pisahkan dengan titik koma. Maksimal 10 penyimpanan didukung untuk setiap nilai. Jalur HTTP harus menyertakan awalan https://, dan jalur UNC harus menyertakan awalan \\ .

Misalnya, jika salah satu direktori virtual disebut Simbol, dan simbol menyimpan yang diaksesnya terletak di penyimpanan UNC \\symbols\symbols dan penyimpanan https://msdl.microsoft.com/download/symbolsHTTP , buat kunci registri berikut.

HKLM/Software/Microsoft/Symbol Server Proxy/Web Directories/Symbols

Setelah kunci ini dibuat, edit SymbolPath-nya menjadi \\symbols\symbols;https://msdl.microsoft.com/download/symbols. Ini dapat dilihat pada cuplikan layar Editor Registri berikut.

Cuplikan layar Editor Registri yang menampilkan SymbolPath yang diperbarui.

Dalam contoh ini, SymProxy terlebih dahulu mencari simbol dalam \\symbols\symbols. Jika file tidak ditemukan di sana, Microsoft Symbol Store akan digunakan.

  • Di setiap kunci di bawah Direktori Web yang cocok dengan nama Direktori Virtual, REG_SZ yang disebut SymbolPath perlu dibuat. Nilai berisi semua penyimpanan simbol upstream yang akan digunakan untuk mengisi penyimpanan simbol SymProxy.

  • Maksimal 10 entri didukung.

  • Pisahkan entri dengan titik koma.

  • Jalur UNC perlu menyertakan awalan "\\"

  • Jalur HTTP perlu menyertakan awalan "https://"

  • Pesan nilai dari yang paling murah ke yang paling mahal.

    • Anda harus menyeimbangkan tujuan performa penggunaan vs. biaya komunikasi server dan data dalam perhitungan.

    • Secara umum, letakkan server SMB/HTTP lokal sebelum server HTTP internet.

Penghitung Kinerja SymProxy

SymProxy dapat memancarkan penghitung kinerja melalui penyedia bernama SymProxy.

Untuk mengaktifkan dukungan penghitung kinerja, daftarkan file manifes simroksi di jendela perintah administrator:

C:\> lodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man

Untuk menonaktifkan dukungan penghitung kinerja, batalkan pendaftaran manifes:

C:\> unlodctr.exe /m:%WINDIR%\system32\inetsrv\symproxy.man

Pelacakan Peristiwa SymProxy untuk Windows

SymProxy dapat membuat peristiwa ETW melalui penyedia bernama Microsoft-Windows-SymProxy.

C:\> logman query providers | findstr SymProxy
Microsoft-Windows-SymProxy {0876099C-A903-47FF-AF14-52035BB479EF}

Untuk mengaktifkan dukungan ETW, daftarkan file manifes:

C:\> wevtutil.exe install-manifest %WINDIR%\system32\inetsrv\symproxy.man

Untuk menonaktifkan dukungan ETW, batalkan pendaftaran file manifes:

C:\> wevtutil.exe uninstall-manifest %WINDIR%\system32\inetsrv\symproxy.man

Log Peristiwa

Jika ETW dikonfigurasi, peristiwa dicatat sebagai peristiwa di saluran Operasional dan Analitik di bawah Log Aplikasi dan Layanan\Microsoft\Windows\SymProxy di Log Peristiwa.

Untuk melihat pesan entri Log Peristiwa dengan benar, area Log Peristiwa dari file symproxy.reg perlu ditambahkan ke registri:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Microsoft-Windows-SymProxy]
"ProviderGuid"="{0876099c-a903-47ff-af14-52035bb479ef}"
"EventMessageFile"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,\
  00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,\
  5c,00,69,00,6e,00,65,00,74,00,73,00,72,00,76,00,5c,00,53,00,79,00,6d,00,50,\
  00,72,00,6f,00,78,00,79,00,2e,00,64,00,6c,00,6c,00,00,00
"TypesSupported"=dword:00000007

Peristiwa SymProxy

SymProxy mencatat peristiwa berikut:

ID Peristiwa Deskripsi Saluran
1 Mulai filter ISAPI Admin
2 Menghentikan filter ISAPI Admin
3 Konfigurasi filter ISAPI Admin
4 Statistik Miss Cache Admin
10 Permintaan URL - Hit Cache Lokal Operasional
11 Permintaan URL - Cache Miss Lokal Operasional
20 Unduh Simbol melalui SymSrv Operasional
30 Simbol Kritis Hilang Admin
31 Gambar Kritis Hilang Admin
40 SymSrv – Jalur Tidak Ditemukan Admin
41 SymSrv – File Tidak Ditemukan Admin
42 SymSrv – Akses Ditolak Admin
43 SymSrv – Jalur Terlalu Panjang Admin
49 SymSrv – Kode Kesalahan Admin
90 Kunci Ketidakcocokan Operasional
100 Pesan Kritis Umum Analitik
101 Pesan Kesalahan Umum Analitik
102 Pesan Peringatan Umum Analitik
103 Pesan Informasi Umum Analitik
104 Pesan Analitik Umum Analitik
105 Pesan Debug Umum Debug

Konfigurasi Proksi Server Simbol

SymProxy menyimpan pengaturan konfigurasinya di area kunci registri berikut:

HKLM/Software/Microsoft/Symbol Server Proxy

Dari lokasi ini, SymProxy memperoleh pengaturan globalnya dan jalur simbol toko simbol hulu.

Anda dapat membuat kunci ini dengan menggabungkan dalam file symproxy.reg yang Anda sesuaikan seperti yang dibahas sebelumnya.

Kunci Proksi Server Simbol

Kunci registri Proksi Server Simbol mendukung pengaturan global berikut (semua REG_DWORD). Pengaturan dapat diterapkan secara langsung dengan mendaur ulang kumpulan aplikasi. Proses w3wp.exe baru akan dibuat dan akan membaca nilai baru. Setelah semua permintaan yang tertunda ke proses w3wp.exe lama selesai, proses w3wp.exe lama akan berakhir. IIS secara default mendaur ulang w3wp.exe proses setiap 1.740 menit (29 jam).

REG_DWORD Deskripsi
NoInternetProxy

Saat menjalankan sebagai layanan, SymSrv.dll menggunakan WinHTTP alih-alih WinInet untuk membuat permintaan HTTP. Akibatnya, Anda mungkin perlu menyiapkan pengaturan proksi HTTP sehingga layanan dapat mengakses di luar sumber daya jaringan. Anda dapat melakukan ini menggunakan program netsh. Ketik "netsh.exe winhttp -?" untuk instruksi.

Secara default, SymProxy menggunakan proksi HTTP yang ditunjuk. Jika tidak ada proksi HTTP yang dikonfigurasi, SymProxy akan menggunakan proksi dummy. Ini memungkinkan akses aman ke situs HTTP dalam intranet Anda. Sebagai efek samping, ini mencegah SymProxy terhubung langsung ke situs yang tidak aman.

  • Tidak ditentukan - (default) Dinonaktifkan - Proksi digunakan
  • 0 – Dinonaktifkan
  • 1+ – Diaktifkan

NoFilePointers

Secara default, untuk simbol yang tidak ada, SymProxy akan mencari file file.ptr di samping file yang diminta (di cache lokal). Jika ditemukan, itu akan mengembalikan lokasi yang ditentukan oleh file file.ptr. Kemampuan ini hanya diperlukan ketika cache lokal sedang diisi oleh SymStore.exe.

  • Tidak ditentukan - (default) Dinonaktifkan - file file.ptr dicari/dibaca
  • 0 – Dinonaktifkan
  • 1+ – Diaktifkan

NoUncompress

Secara default, SymProxy akan mendekompresi simbol yang diunduh sebelum mengembalikan file ke pemanggil. Ini mengurangi CPU di klien, tetapi meningkatkan I/O.

  • Tidak ditentukan - (default) Dinonaktifkan - Dekompresi terjadi
  • 0 – Dinonaktifkan
  • 1+ – Diaktifkan

NoCache

Secara default, SymProxy akan menyimpan simbol yang diunduh ke sistem file lokal, yang ditentukan oleh jalur direktori virtual.

  • Tidak ditentukan - (default) Dinonaktifkan - Penembolokan terjadi
  • 0 – Dinonaktifkan
  • 1+ – Diaktifkan

MissTimeout

Periode waktu habis, dalam detik, yang simbolnya hilang dilaporkan hilang tanpa mengkueri ulang server simbol upstram.

Kesalahan dikaitkan dengan waktu berbasis UTC. Permintaan berikutnya untuk file segera ditolak selama N detik.

Permintaan pertama untuk file setelah N detik menyebabkan penyimpanan simbol upstram dikueri ulang.

Jika berhasil, file simbol dikembalikan dan kesalahan dihapus.

Jika gagal, kesalahan dipindahkan ke waktu saat ini (dalam UTC) untuk memulai periode batas waktu baru.

Gunakan penghitung kinerja "Miss Cache" untuk memantau kesalahan.

  • Tidak ditentukan - (default) 300 detik/5 menit
  • 0 – Fitur dinonaktifkan
  • N – Batas waktu berlangsung N detik

MissAgeCheck

Periode antara pemeriksaan Miss Age. Cache Miss dipindai dan rekaman yang lebih lama dari detik MissAgeTimeout dihapus.

Statistik saat ini disimpan ke Log Peristiwa menggunakan ID Peristiwa 4.

  • Tidak ditentukan - (default) 3600 detik / 1 jam
  • 0 – Fitur dinonaktifkan
  • N – Periode antara pemeriksaan dalam N detik

MissAgeTimeout

Hapus menyeluruh batas waktu setiap entri cache Miss. Entri dibersihkan karena tidak adanya permintaan untuk itu sepanjang periode ini.

  • Tidak ditentukan - (default) 86400 detik / 1 hari
  • 0 – Fitur dinonaktifkan
  • N – Batas waktu entri dalam N detik

NoLongerIndexedAuthoritive

Ketika diaktifkan, respons file.ptr dari NoLongerIndexed akan diperlakukan sebagai otoritif di semua Penyimpanan Simbol.

Gunakan ini untuk menghindari panggilan (tidak perlu) ke server yang tidak mengindeks file.

  • Tidak ditentukan - (default) Dinonaktifkan
  • 0 – Dinonaktifkan
  • 1+ – Diaktifkan

Coba lagiAppHang

Aktifkan Coba Lagi ke Penyimpanan Simbol HTTP upstream. Ini setara dengan opsi SymSrv SSRVOPT_RETRY_APP_HANG (0x80000000).

Pada penerimaan Kode Kesalahan 0x80070512/HRESULT_FROM_WIN32(ERROR_APP_HANG) melalui Header Respons HTTP 'Symbol-Agent-Status' dari Penyimpanan Simbol HTTP upstream, soket akan tetap terbuka dan GET akan diulang hingga waktu 'N'.

SymProxy menggabungkan beberapa permintaan untuk URI yang sama. Ketika permintaan yang tertunda mencapai 25 detik, SymProxy akan mengembalikan 0x80070512 ke pemanggil melalui Header Respons HTTP 'Symbol-Agent-Status', tetapi melanjutkan operasi di latar belakang.

Klien harus mengaktifkan opsi SSRVOPT_RETRY_APP_HANG di SymSrv sehingga (ekstra) permintaan panjang didukung - pada dasarnya menautkan coba lagi upstream.

SymProxy default batas waktu respons hingga 25 detik sehingga respons dibuat sebelum soket ditutup pada batas waktu (default) 30 detik yang digunakan SymSrv ke Penyimpanan Simbol HTTP. Versi SymSrv yang lebih baru mengirimkan nilai Batas Waktu HTTP yang dikonfigurasi melalui Header Permintaan HTTP 'Symbol-Agent-Receive-Timeout' (dalam mSec). Jika Header Permintaan HTTP ini disediakan, nilai ini digunakan alih-alih default 25 detik.

  • Tidak ditentukan - (default) Dinonaktifkan
  • 0 – Dinonaktifkan
  • N – Upaya Coba Lagi

UriFilter

Aktifkan Pemfilteran URI. Ini setara dengan opsi SymSrv SSRVOPT_URI_FILTER (0x20000000).

Pemfilteran URI mengurangi berbagai permintaan ke semua Penyimpanan Simbol upstream. Nilainya adalah bitmask.

HTTP - SSRVURI_HTTP_MASK (0x0F)

  • 0x01 - SSRVURI_HTTP_NORMAL - misalnya http://symbols/.../foo.pdb
  • 0x02 - SSRVURI_HTTP_COMPRESSED - misalnya http://symbols/.../foo.pd_
  • 0x04 - SSRVURI_HTTP_FILEPTR - misalnya http://symbols/.../file.ptr

UNC - SSRVURI_UNC_MASK (0xF0)

  • 0x10 - SSRVURI_UNC_NORMAL - misalnya \\MyServer\Symbols\...\foo.pdb
  • 0x20 - SSRVURI_UNC_COMPRESSED - misalnya \\MyServer\Symbols\...\foo.pd_
  • 0x40 - SSRVURI_UNC_FILEPTR - misalnya \\MyServer\Symbols\...\file.ptr

UriTiers

Aktifkan Tingkat URI. Ini setara dengan opsi SymSrv SSRVOPT_URI_TIERS (0x40000000).

Tingkat URI memaksa skema Tingkat yang digunakan oleh semua Penyimpanan Simbol upstram. Ketika tidak diatur, permintaan tambahan diperlukan untuk menentukan skema. Keberadaan 'index2.txt' di akar menunjukkan tata letak 2 tingkat.

Penyimpanan 1 Tingkat dalam format: /widget.dll/<index>/widget.dll|widget.dl_|file.ptr

Penyimpanan 2 Tingkat dalam format: /wi/widget.dll/<index>/widget.dll|widget.dl_|file.ptr

  • Tidak ditentukan - (default) Dinonaktifkan
  • 0 – Dinonaktifkan
  • 1 – Penyimpanan Simbol 1 Tingkat
  • 2 – Penyimpanan Simbol 2 Tingkat

Mengakses Sumber Daya Jaringan Luar

Ketika SymSrv digunakan bersama dengan SymProxy, SymProxy berjalan sebagai layanan dan menggunakan API WinHTTP untuk mengakses simbol melalui koneksi HTTP. Ini berbeda dari perilaku biasa menggunakan WinInet untuk tujuan ini.

Akibatnya, Anda mungkin perlu menyiapkan pengaturan proksi HTTP sehingga layanan ini dapat mengakses di luar sumber daya jaringan. Gunakan salah satu metode berikut untuk mengonfigurasi pengaturan ini:

  • Gunakan alat Netsh (netsh.exe). Untuk petunjuknya, ketik yang berikut ini di jendela Prompt Perintah:

    netsh winhttp -? 
    

Perilaku default SymProxy adalah menggunakan proksi HTTP apa pun yang ditunjuk oleh ProxyCfg atau Netsh. Jika tidak ada proksi HTTP yang dikonfigurasi, SymProxy menggunakan proksi dummy untuk mengizinkan akses ke situs HTTP aman dalam intranet Anda. Sebagai efek samping, teknik ini mencegah SymProxy bekerja dengan koneksi langsung ke Internet eksternal. Jika Anda ingin mengizinkan SymProxy untuk beroperasi dengan koneksi langsung ke Internet, buat nilai REG_DWORD bernama NoInternetProxy di kunci Proksi Server Simbol registri Anda. Atur nilai NoInternetProxy ke 1 dan verifikasi bahwa tidak ada proksi HTTP yang ditunjukkan oleh ProxyCfg.