Kayıt Defterini Yapılandırma

SymProxy ayarlarını bu kayıt defteri anahtarında depolar.

HKLM/Software/Microsoft/Symbol Server Proxy

Bu kayıt defteri anahtarı, Web sitesinde depolanacak simgelerin bulunacağı konumu, günlük düzeyini ve SymProxy'nin ağa doğrudan bağlantı ile çalışıp çalışmayacağını denetler. Windows için Hata Ayıklama Araçları ile sağlanan SymProxy kayıt aracını (Symproxy.reg) çalıştırarak bu anahtarı oluşturabilirsiniz. Komut istemine symproxy.reg yazın veya Windows Gezgini'nden çift tıklayın.

Bu işlem, devre dışı bırakılmaları için ön eki "x" olacak ayarlar için girdiler ekler. Bir ayarı etkinleştirmek için, istediğiniz ayarın önündeki "x" işaretini kaldırın.

[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

symproxy.reg kayıt defteri dosyası Simgeler'in sanal dizin adını varsayar ve Simge Yolunu Microsoft Genel Sembol Sunucusu'nu kullanacak şekilde yapılandırılır.

[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"

symproxy.reg'daki olay günlüğü girişleri, bu konunun Olay Günlüğü bölümünde ele alınmıştır.

[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

symproxy.reg'deki web dizini girdileri bu konuda ele alınmıştır.

Web Dizinleri

Iis'de sembol deposu olarak kullandığınız her sanal dizin için, aşağıdaki kayıt defteri anahtarının Web Dizinleri alt anahtarının altında bir kayıt defteri anahtarı ayarlamanız gerekir.

HKLM/Software/Microsoft/Symbol Server Proxy

Bir sembol deposu sanal dizininin kayıt defteri anahtarını düzenlemek için

  • SymbolPath'in içeriğini, SymProxy sembol deposu tarafından kullanılan tüm sembol depolarını içerecek şekilde düzenleyin. Kullanılan birden fazla simge deposu varsa bunları noktalı virgülle ayırın. Her değer için en fazla 10 mağaza desteklenir. HTTP yolları https:// ön ekini içermeli ve UNC yolları ön eki içermelidir \\ .

Örneğin, sanal dizinlerden birine Simgeler adı verilirse ve eriştiği sembol depoları UNC deposunda \\symbols\symbols ve HTTP deposunda https://msdl.microsoft.com/download/symbolsbulunuyorsa, aşağıdaki kayıt defteri anahtarını oluşturun.

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

Bu anahtar oluşturulduktan sonra SymbolPath'ini \\symbols\symbols;https://msdl.microsoft.com/download/symbols olacak şekilde düzenleyin. Bu, Kayıt Defteri Düzenleyicisi'nin aşağıdaki ekran görüntüsünde görülebilir.

Güncelleştirilmiş bir SymbolPath'i görüntüleyen Kayıt Defteri Düzenleyicisi'nin ekran görüntüsü.

Bu örnekte, SymProxy önce \\symbols\symbols içindeki simgeleri arar. Dosyalar orada bulunmazsa, Microsoft Sembol Deposu kullanılır.

  • Sanal Dizin adlarına uyan Web Dizinleri altındaki anahtarların her birinde SymbolPath adlı bir REG_SZ oluşturulması gerekir. değeri, SymProxy sembol depolarını doldurmak için kullanılacak tüm yukarı akış sembol depolarını içerir.

  • En fazla 10 giriş desteklenir.

  • Girişleri noktalı virgülle ayırın.

  • UNC yollarının "\\" ön ekini içermesi gerekir

  • HTTP yollarının "https://" ön ekini içermesi gerekir

  • Değerleri en az pahalıdan en pahalıya sırala.

    • Hesaplamada kullanım performansı hedefleriyle sunucu ve veri iletişimi maliyetlerini dengelemeniz gerekir.

    • Genel olarak, yerel SMB/HTTP sunucularını İnternet HTTP sunucularının önüne koyun.

SymProxy Performans Sayaçları

SymProxy, SymProxy adlı bir sağlayıcı aracılığıyla performans sayaçları yayar.

Performans sayaçları desteğini etkinleştirmek için symproxy bildirim dosyasını bir yönetici komut penceresine kaydedin:

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

Performans sayaçları desteğini devre dışı bırakmak için bildirimin kaydını kaldırın:

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

Windows için SymProxy Olay İzleme

SymProxy, Microsoft-Windows-SymProxy adlı bir sağlayıcı aracılığıyla ETW olayları oluşturabilir.

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

ETW desteğini etkinleştirmek için bildirim dosyasını kaydedin:

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

ETW desteğini devre dışı bırakmak için bildirim dosyasının kaydını kaldırın:

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

Olay Günlüğü

ETW yapılandırıldıysa, olaylar Olay Günlüğü'ndeki Uygulamalar ve Hizmetler Günlükleri\Microsoft\Windows\SymProxy altında İşletimsel veAnalitik kanallarında olaylar olarak kaydedilir.

Olay Günlüğü girdilerinin iletisini doğru görüntülemek için, symproxy.reg dosyasının Olay Günlüğü alanının kayıt defterine eklenmesi gerekir:

[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

SymProxy Olayları

SymProxy aşağıdaki olayları günlüğe kaydeder:

Olay Kimliği Açıklama Kanal
1 ISAPI filtresinin başlangıcı Yönetici
2 ISAPI filtresinin durdurulması Yönetici
3 ISAPI filtresinin yapılandırması Yönetici
4 İsabetsiz Önbellek İstatistikleri Yönetici
10 URL İsteği - Yerel Önbellek İsabetli Operasyonel
11 URL İsteği - Yerel Önbellek Eksik Operasyonel
20 SymSrv aracılığıyla Simge İndirme Operasyonel
30 Kritik Simge Eksik Yönetici
31 Önemli Görüntü Eksik Yönetici
40 SymSrv – Yol Bulunamadı Yönetici
41 SymSrv – Dosya Bulunamadı Yönetici
42 SymSrv – Erişim Reddedildi Yönetici
43 SymSrv – Yol Çok Uzun Yönetici
49 SymSrv – Hata Kodu Yönetici
90 Çakışmayı Kilitle Operasyonel
100 Genel Kritik İleti Analitik
101 Genel Hata İletisi Analitik
102 Genel Uyarı İletisi Analitik
103 Genel Bilgilendirme İletisi Analitik
104 Genel Analiz İletisi Analitik
105 Genel Hata Ayıklama İletisi Hata ayıklama

Sembol Sunucusu Proxy Yapılandırması

SymProxy yapılandırma ayarlarını aşağıdaki kayıt defteri anahtarı alanında depolar:

HKLM/Software/Microsoft/Symbol Server Proxy

Bu konumdan, SymProxy genel ayarlarını ve yukarı akış sembol depolarının sembol yollarını alır.

Daha önce açıklandığı gibi özelleştirdiğiniz symproxy.reg dosyasında birleştirerek bu anahtarı oluşturabilirsiniz.

Sembol Sunucusu Proxy Anahtarı

Sembol Sunucusu Proxy kayıt defteri anahtarı aşağıdaki genel ayarları (tüm REG_DWORD) destekler. Ayarlar, uygulama havuzu geri dönüştürülerek canlı olarak uygulanabilir. Yeni bir w3wp.exe işlemi oluşturulacak ve yeni değerler okunacak. Eski w3wp.exe işlemine yönelik bekleyen tüm istekler tamamlandıktan sonra eski w3wp.exe işlemi sona erer. IIS varsayılan olarak 1.740 dakikada bir (29 saatte bir) w3wp.exe işlemleri geri dönüşüme dönüştürmektedir.

REG_DWORD Açıklama
NoInternetProxy

Hizmet olarak çalışırken, SymSrv.dll HTTP isteklerinde bulunmak için WinInet yerine WinHTTP kullanır. Sonuç olarak, hizmetin dış ağ kaynaklarına erişebilmesi için HTTP proxy ayarlarını ayarlamanız gerekebilir. Bunu netsh programını kullanarak yapabilirsiniz. "netsh.exe winhttp -?" yazın talimatlar için

Varsayılan olarak, SymProxy belirlenen HTTP proxy'sini kullanır. Hiçbir HTTP ara sunucusu yapılandırılmamışsa, SymProxy sahte bir proxy kullanır. Bu, intranetinizdeki HTTP sitelerine güvenli erişim sağlar. Yan etki olarak bu, SymProxy'nin güvenli olmayan sitelere doğrudan bağlanmasını önler.

  • Belirtilmemiş - (varsayılan) Devre Dışı - Ara sunucu kullanılır
  • 0 – Devre Dışı
  • 1+ – Etkin

Dosya İşaretleyici Yok

Varsayılan olarak, var olmayan simgeler için SymProxy istenen dosyanın yanında bir file.ptr dosyası arar (yerel önbellekte). Bulunursa, file.ptr dosyası tarafından belirtilen konumu döndürür. Bu özellik yalnızca yerel önbellek SymStore.exetarafından doldurulduğunda gereklidir.

  • Belirtilmemiş - (varsayılan) Devre dışı - file.ptr dosyaları aranıyor/okunuyor
  • 0 – Devre Dışı
  • 1+ – Etkin

NoUncompress

Varsayılan olarak, SymProxy dosyayı çağırana döndürmeden önce indirilen simgelerin sıkıştırmasını kaldıracaktır. Bu, istemcideki CPU'ları azaltır, ancak G/Ç'yi artırır.

  • Belirtilmemiş - (varsayılan) Devre Dışı - Dekompresyon oluşuyor
  • 0 – Devre Dışı
  • 1+ – Etkinleştirildi

NoCache

Varsayılan olarak, SymProxy indirilen sembolleri sanal dizinin yolu tarafından tanımlanan yerel dosya sistemine önbelleğe alır.

  • Belirtilmemiş - (varsayılan) Devre Dışı - Önbelleğe alma gerçekleşiyor
  • 0 – Devre Dışı
  • 1+ – Etkin

MissTimeout

Yukarı akış sembol sunucularını yeniden sorgulamadan eksik simgelerin eksik olarak bildirildiği saniye cinsinden zaman aşımı süresi.

Bir kaçırma UTC tabanlı bir zamanla ilişkilendirilir. Dosya için sonraki istekler N saniye boyunca hemen reddedilir.

N saniye sonra dosyanın ilk isteği yukarı akış sembol depolarının yeniden sorgulanmasına neden olur.

Başarılı olduğunda, sembol dosyası döndürülür ve eksik dosya silinir.

Hata durumunda, yeni bir zaman aşımı dönemi başlatmak için eksik geçerli saate (UTC cinsinden) taşınır.

Eksikleri izlemek için "Miss Cache" performans sayaçlarını kullanın.

  • Belirtilmemiş - (varsayılan) 300 saniye/5 dakika
  • 0 – Özellik devre dışı
  • N – Zaman aşımı N saniye sürer

MissAgeCheck

Bayan Yaş kontrolleri arasındaki süre. Miss önbelleği taranır ve MissAgeTimeout saniyelerinden eski kayıtlar kaldırılır.

Geçerli istatistikler, Olay Kimliği 4 kullanılarak Olay Günlüğüne kaydedilir.

  • Belirtilmemiş - (varsayılan) 3600 saniye / 1 saat
  • 0 – Özellik devre dışı
  • N – N saniye cinsinden denetimler arasındaki süre

MissAgeTimeout

Her bir Miss önbelleği girdisinin zaman aşımını temizleyin. Bu süre boyunca herhangi bir talep olmadığı için girdi temizlendi.

  • Belirtilmemiş - (varsayılan) 86400 saniye / 1 gün
  • 0 – Özellik devre dışı
  • N – Girdilerin N saniye içinde zaman aşımı

Artık Endekslenmeyen Yetkili

Etkinleştirildiğinde, NoLongerIndexed dosyasının file.ptr yanıtı tüm Sembol Depolarında yetkili olarak kabul edilir.

Dosyayı dizine eklemeyen sunuculara yapılan çağrıları önlemek için bunu kullanın.

  • Belirtilmemiş - (varsayılan) Devre Dışı
  • 0 – Devre Dışı
  • 1+ – Etkin

RetryAppHang

Yukarı akış HTTP Sembol Depolarında Yeniden Deneme'yi etkinleştirin. Bu, SymSrv SSRVOPT_RETRY_APP_HANG (0x80000000) seçeneğine eşdeğerdir.

Yukarı akış HTTP Sembol Deposu'ndan 'Symbol-Agent-Status' HTTP Yanıt Üst Bilgisi aracılığıyla bir 0x80070512/HRESULT_FROM_WIN32(ERROR_APP_HANG) Hata Kodu alındığında bağlantı açık tutulur ve GET isteği 'N' kez tekrarlanır.

SymProxy, aynı URI için birden çok isteği birlendirir. Bekleyen herhangi bir istek 25 saniyeye ulaştığında, SymProxy bir 'Symbol-Agent-Status' HTTP Yanıt Üst Bilgisi aracılığıyla arayana 0x80070512 döndürür, ancak işleme arka planda devam eder.

Müşteriler, normalden uzun isteklerin desteklenmesi için SymSrv'de SSRVOPT_RETRY_APP_HANG seçeneğini etkinleştirerek, özünde yeniden denemeyi yukarıya zincirler.

SymProxy, yanıt zaman aşımını varsayılan olarak 25 saniye olarak belirler, böylece yuva kapanmadan önce SymSrv'nin HTTP Sembol Depoları'nda kullandığı (varsayılan) 30 saniyelik zaman aşımında yanıt alınır. SymSrv'nin sonraki sürümleri yapılandırılmış HTTP Zaman Aşımı değerini 'Symbol-Agent-Receive-Timeout' HTTP İstek Üst Bilgisi (mSec'te) aracılığıyla gönderir. Bu HTTP İstek Üst Bilgisi sağlanmışsa, 25 saniyelik varsayılan değer yerine bu değer kullanılır.

  • Belirtilmemiş - (varsayılan) Devre Dışı
  • 0 – Devre Dışı
  • N – Yeniden Deneme Denemeleri

UriFilter

URI Filtreleme'yi etkinleştirin. Bu, SymSrv SSRVOPT_URI_FILTER (0x20000000) seçeneğine eşdeğerdir.

URI Filtreleme, tüm yukarı akış Sembol Depolarına yönelik istek çeşitliliğini azaltır. Değerler bir bitmask oluşturur.

HTTP - SSRVURI_HTTP_MASK (0x0F)

  • örn. 0x01 - SSRVURI_HTTP_NORMAL - http://symbols/.../foo.pdb
  • 0x02 - SSRVURI_HTTP_COMPRESSED - örn. http://symbols/.../foo.pd_
  • 0x04 - SSRVURI_HTTP_FILEPTR - örneğin http://symbols/.../file.ptr

UNC - SSRVURI_UNC_MASK (0xF0)

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

UriTiers

URI Katmanlarını etkinleştirin. Bu, SymSrv SSRVOPT_URI_TIERS (0x40000000) seçeneğine eşdeğerdir.

URI Katmanları, tüm üst akış Sembol Depoları tarafından kullanılan Katman şemasını zorlar. Ayarlanmadığında, şemayı belirlemek için ek bir istek gerekir. Kökte 'index2.txt' var olması, 2 katmanlı bir düzeni gösterir.

1 katmanlı depolar şu biçimdedir: /widget.dll/<index>/widget.dll|widget.dl_|file.ptr

2 katmanlı depolar şu biçimdedir: /wi/widget.dll/<index>/widget.dll|widget.dl_|file.ptr

  • Belirtilmemiş - (varsayılan) Devre Dışı
  • 0 – Devre Dışı
  • 1 – 1 Katmanlı Sembol Depoları
  • 2 – 2 Katmanlı Sembol Depoları

Dış Ağ Kaynaklarına Erişme

SymSrv, SymProxy ile birlikte kullanıldığında, hizmet olarak çalışır ve HTTP bağlantısı üzerinden sembollere erişmek için WinHTTP API'sini kullanır. Bu, WinInet'i bu amaç için kullanmanın olağan davranışından farklıdır.

Sonuç olarak, bu hizmetin dış ağ kaynaklarına erişebilmesi için HTTP proxy ayarlarını ayarlamanız gerekebilir. Bu ayarları yapılandırmak için aşağıdaki yöntemlerden birini kullanın:

  • Netsh aracını (netsh.exe) kullanın. Yönergeler için Komut İstemi penceresine aşağıdakileri yazın:

    netsh winhttp -? 
    

SymProxy'nin varsayılan davranışı ProxyCfg veya Netsh tarafından belirlenen HTTP proxy'sini kullanmaktır. Hiçbir HTTP proxy'si yapılandırılmamışsa, SymProxy intranetinizdeki güvenli HTTP sitelerine erişime izin vermek için sahte bir proxy kullanır. Yan etki olarak, bu teknik SymProxy'nin dış İnternet'e doğrudan bağlantılarla çalışmasını engeller. SymProxy'nin İnternet'e doğrudan bağlantıyla çalışmasına izin vermek istiyorsanız, kayıt defterinizin Sembol Sunucusu Proxy anahtarında NoInternetProxy adlı bir REG_DWORD değeri oluşturun. NoInternetProxy değerini 1 olarak ayarlayın ve ProxyCfg tarafından belirtilen HTTP proxy'si olmadığını doğrulayın.