Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Visual Studio
Bu makalede, Visual Studio'da Snapshot Debugger ile bir Azure uygulamasında hata ayıklarken karşılaşabileceğiniz yaygın sorunların çözümleri sağlanır.
Bu makalede açıklanan adımlar sorununuzu çözmezse, Visual Studio'da Geri Bildirim>Gönder Sorun Bildir'i seçerek> sorunu Geliştirici Topluluğu arayın veya yeni bir sorun bildirin.
Sorun: "Anlık Görüntü Hata Ayıklayıcısı Ekle" bir HTTP durum kodu hatasıyla karşılaşıyor
Ekleme girişimi sırasında Çıkış penceresinde aşağıdaki hatayı görürseniz, bu aşağıdaki bölümlerde listelenen bilinen bir sorun olabilir. Önerilen çözümleri deneyin ve sorun devam ederse önceki diğer adla iletişime geçin.
[TIMESTAMP] Error --- Unable to Start Snapshot Debugger - Attach Snapshot Debugger failed: System.Net.WebException: The remote server returned an error: (###) XXXXXX
(401) Yetkisiz
Bu hata, Visual Studio tarafından Azure'a verilen REST çağrısının geçersiz bir kimlik bilgisi kullandığını gösterir.
Şu adımları uygulayın:
- Visual Studio kişiselleştirme hesabınızın, eklediğiniz Azure aboneliği ve kaynağı için izinlere sahip olduğundan emin olun. Bunu belirlemenin hızlı bir yolu, Kaynağın Hata Ayıklama Anlık Görüntü Hata Ayıklayıcısı'ndaki iletişim kutusunda kullanılabilir olup olmadığını denetlemektir...>>Azure Kaynağı>Var olanı veya Bulut Gezgini'nde seçin.
- Bu hata devam ederse, bu makalenin başında açıklanan geri bildirim kanallarından birini kullanın.
App Service'inizde Kimlik Doğrulaması/Yetkilendirmeyi (EasyAuth) etkinleştirdiyseniz, çağrı yığını hata iletisinde LaunchAgentAsync ile 401 hatasıyla karşılaşabilirsiniz. İstek kimliği doğrulanmadığında gerçekleştirecek Eylem'in Azure portalında Anonim isteklere izin ver (eylem yok) olarak ayarlandığından emin olun ve D:\Home\sites\wwwroot içinde aşağıdaki içeriğe sahip bir authorization.json sağlayın.
{
"routes": [
{
"path_prefix": "/",
"policies": {
"unauthenticated_action": "RedirectToLoginPage"
}
},
{
"http_methods": [ "POST" ],
"path_prefix": "/41C07CED-2E08-4609-9D9F-882468261608/api/agent",
"policies": {
"unauthenticated_action": "AllowAnonymous"
}
}
]
}
İlk yol, [IdentityProvider] ile oturum açma gibi uygulama etki alanınızın güvenliğini etkili bir şekilde sağlar. İkinci yol SnapshotDebugger AgentLaunch uç noktasını kimlik doğrulaması dışında kullanıma sunar. Bu işlem, SnapshotDebugger tanılama aracısını başlatmanın önceden tanımlanmış eylemini yalnızca SnapshotDebugger önceden yüklenmiş site uzantısı uygulama hizmetiniz için etkinleştirildiğinde gerçekleştirir. authorization.json yapılandırması hakkında daha fazla bilgi için bkz. URL yetkilendirme kuralları.
(403) Yasak
403 - Yasak hatası, iznin reddedildiğini gösterir. Birçok farklı senaryo bu hataya neden olabilir.
Şu adımları uygulayın:
- Visual Studio hesabınızın kaynak için gerekli Rol Tabanlı Erişim Denetimi (RBAC) izinlerine sahip geçerli bir Azure aboneliğine sahip olduğunu doğrulayın. AppService için uygulamanızı barındıran App Service Planı'nı sorgulama izinlerinizin olup olmadığını denetleyin.
- İstemci makinenizin zaman damgasının doğru ve güncel olduğunu doğrulayın. İstek zaman damgasının 15 dakikadan uzun süre kapalı olduğu sunucular genellikle bu hatayı üretir.
- Bu hata devam ederse, bu makalenin başında açıklanan geri bildirim kanallarından birini kullanın.
(404) Bulunamadı
404 - Bulunamadı hatası, web sitesinin sunucuda bulunamadığını gösterir.
Şu adımları uygulayın:
- Eklediğiniz App Service kaynağında dağıtılan ve çalıştırılan bir web sitenizin olduğunu doğrulayın.
- Sitenin https://< resource.azurewebsites.net> adresinde kullanılabilir olduğunu doğrulayın
- düzgün çalışan özel web uygulamanızın https:// resource.azurewebsites.net<> adresinden erişildiğinde 404 durum kodu döndürmediğini doğrulayın.
- Bu hata devam ederse, bu makalenin başında açıklanan geri bildirim kanallarından birini kullanın.
(406) Kabul Edilemez
406 - Kabul Edilemiyor hatası, sunucunun isteğin Accept üst bilgisinde ayarlanan türe yanıt veremediğini gösterir.
Şu adımları uygulayın:
- Sitenizin https://< resource.azurewebsites.net> adresinde kullanılabilir olduğunu doğrulayın.
- Sitenizin yeni örneklere geçirilmemiş olduğunu doğrulayın. Snapshot Debugger, istekleri zaman zaman bu hatayı oluşturabilecek belirli örneklere yönlendirmek için ARRAffinity ifadesini kullanır.
- Bu hata devam ederse, bu makalenin başında açıklanan geri bildirim kanallarından birini kullanın.
(409) Çakışma
409 - Çakışma hatası, isteğin geçerli sunucu durumuyla çakıştığını gösterir.
Bu, kullanıcı ApplicationInsights'ı etkinleştirmiş bir AppService'e Snapshot Debugger eklemeyi denediğinde oluşan bilinen bir sorundur. ApplicationInsights, AppSettings'i Visual Studio'dan farklı bir büyük/küçük harfle ayarlar ve bu soruna neden olur.
Bu sorunu Visual Studio 2019'da çözdük.
Şu adımları uygulayın:
- Bu hata devam ederse, bu makalenin başında açıklanan geri bildirim kanallarından birini kullanın.
(500) İç Sunucu Hatası
500 - İç Sunucu Hatası, sitenin devre dışı olduğunu veya sunucunun isteği işleyemediğini gösterir. Snapshot Debugger yalnızca çalışan uygulamalar üzerinde çalışır. Application Insights Anlık Görüntü Hata Ayıklayıcısı özel durumlarda anlık görüntü sağlar ve ihtiyaçlarınız için en iyi araç olabilir.
(502) Hatalı Ağ Geçidi
502 - Hatalı Ağ Geçidi hatası, sunucu tarafı ağ sorununu gösterir ve geçici olabilir.
Şu adımları uygulayın:
- Snapshot Debugger'a yeniden eklemeden önce birkaç dakika beklemeyi deneyin.
- Bu hata devam ederse, bu makalenin başında açıklanan geri bildirim kanallarından birini kullanın.
Sorun: Snappoint açık değil
Normal tutturma noktası simgesi
yerine tutturma noktanızla birlikte bir uyarı simgesi görürseniz, tutturma noktası açık değildir.
Şu adımları uygulayın:
- Uygulamanızı derlemek ve dağıtmak için kaynak kodunun aynı sürümünü kullandığınızdan emin olun.
- Dağıtımınız için doğru simgeleri yüklediğinizden emin olun.
- Bunu yapmak için, Snapshot Debugging sırasında Modüller penceresini görüntüleyin ve Sembol Dosyası sütununda hata ayıkladığınız modül için yüklenmiş bir .pdb dosyası olduğunu doğrulayın.
- Snapshot Debugger dağıtımınız için sembolleri otomatik olarak indirmeyi ve kullanmayı dener.
Sorun: Anlık Görüntü açtığımda simgeler yüklenemiyor
Aşağıdaki pencereyi görürseniz simgeler yüklenmedi.
Şu adımları uygulayın:
Sayfada Simge Ayarlarını Değiştir... öğesini seçin.
Hata Ayıklama > Simgesi ayarlarına bir simge önbellek dizini ekleyin.
Simge yolu ayarlandıktan sonra anlık görüntü hata ayıklamasını yeniden başlatın.
Projenizde kullanılabilen simgeler veya .pdb dosyaları App Service dağıtımınızla eşleşmelidir. Çoğu dağıtım (Visual Studio aracılığıyla dağıtım, Azure Pipelines veya Kudu ile CI/CD vb.) sembol dosyalarınızı App Service'inizde yayımlar. Sembol önbelleği dizininin ayarlanması, Visual Studio'nın bu simgeleri kullanmasını sağlar.
Alternatif olarak, kuruluşunuz bir sembol sunucusu kullanıyorsa veya sembolleri farklı bir yola bırakıyorsa, dağıtımınız için doğru simgeleri yüklemek için sembol ayarlarını kullanın.
Sorun: Bulut Gezgini'nde "Anlık Görüntü Hata Ayıklayıcısı Ekle" seçeneğini göremiyorum
Şu adımları uygulayın:
Snapshot Debugger bileşeninin yüklü olduğundan emin olun. Visual Studio Yükleyicisi açın ve Azure iş yükündeki Snapshot Debugger bileşenini denetleyin.
Visual Studio 2019 veya sonraki sürümleri için uygulamanızın desteklendiğinden emin olun:
- Azure Uygulaması Hizmetleri - .NET Framework 4.6.1 veya üzeri üzerinde çalışan uygulamaları ASP.NET.
- Azure Uygulaması Hizmetleri - Windows'da .NET Core 2.0 veya üzeri üzerinde çalışan ASP.NET Core uygulamaları.
- Azure Sanal Makineler (ve sanal makine ölçek kümesi) - .NET Framework 4.6.1 veya sonraki sürümlerinde çalışan uygulamaları ASP.NET.
- Azure Sanal Makineler (ve sanal makine ölçek kümesi) - Windows üzerinde .NET Core 2.0 veya üzeri üzerinde çalışan ASP.NET Core uygulamaları.
- Azure Kubernetes Services - Debian 9'da .NET Core 2.2 veya üzeri üzerinde çalışan ASP.NET Core uygulamaları.
- Azure Kubernetes Services - Alpine 3.8 üzerinde .NET Core 2.2 veya üzeri üzerinde çalışan ASP.NET Core uygulamaları.
- Azure Kubernetes Services - Ubuntu 18.04 üzerinde .NET Core 2.2 veya üzeri üzerinde çalışan ASP.NET Core uygulamaları.
Sorun: Tanılama Araçları'nda yalnızca Kısıtlanmış Anlık Görüntüler görüyorum
Şu adımları uygulayın:
- Anlık görüntüler çok az bellek alır ancak işleme ücretine sahiptir. Snapshot Debugger sunucunuzun yoğun bellek yükü altında olduğunu algılarsa anlık görüntüler almaz. Snapshot Debugger oturumunu durdurup yeniden deneyerek zaten yakalanan anlık görüntüleri silebilirsiniz.
Sorun: Visual Studio'nun birden çok sürümüyle anlık görüntü hata ayıklaması bana hata veriyor (Visual Studio 2019 veya sonraki sürümler)
Visual Studio 2019, Azure Uygulaması Hizmetinizde Snapshot Debugger site uzantısının daha yeni bir sürümünü gerektirir. Bu sürüm, Visual Studio 2017 tarafından kullanılan Snapshot Debugger site uzantısının eski sürümüyle uyumlu değildir. Visual Studio 2019'da Snapshot Debugger'ı daha önce Visual Studio 2017'deki Snapshot Debugger tarafından hata ayıklanmış bir Azure Uygulaması Hizmetine eklemeye çalışırsanız aşağıdaki hatayı alırsınız:
Buna karşılık, Daha önce Visual Studio 2019'da Snapshot Debugger tarafından hata ayıklanmış bir Azure Uygulaması Hizmetine Snapshot Debugger eklemek için Visual Studio 2017 kullanırsanız aşağıdaki hatayı alırsınız:
Bunu düzeltmek için Azure portalında aşağıdaki Uygulama ayarlarını silin ve Snapshot Debugger'ı yeniden ekleyin:
INSTRUMENTATIONENGINE_EXTENSION_VERSIONSNAPSHOTDEBUGGER_EXTENSION_VERSION
Sorun: Yanlış/eski Azure kaynağına veya depolama hesabına ekliyorum
Şu adımları uygulayın:
"Azure kaynağı" ve "Depolama hesabı" girişleri kaynak adlarını anahtar olarak kullanır, bu nedenle kaynağı farklı aboneliklere geçirme gibi eylemler sorunlara neden olabilir. Listeyi temizlemek için şu adımları izleyin:
VS için Geliştirici komut isteminde bu komutları çalıştırın (yönetici ayrıcalıklarıyla).
vsregedit remove local HKCU SnapshotDebugger AzureResourcesMRU vsregedit remove local HKCU SnapshotDebugger StorageAccountsMRUWeb uygulamasıyla ilişkili tüm .suo dosyalarını silin.
Sorun: Anlık Görüntü Hata Ayıklama sorunları yaşıyorum ve daha fazla günlüğe kaydetmeyi etkinleştirmem gerekiyor
Aracı günlüklerini etkinleştirme
Aracı günlüğünü etkinleştirmek ve devre dışı bırakmak için Visual Studio'yu açın ve Araçlar>Seçenekler>Anlık Görüntü Hata Ayıklayıcısı>Aracı günlüğünü etkinleştir'e gidin. Oturum başlatmadaki eski aracı günlüklerini sil de etkinleştirildiyse, her başarılı Visual Studio eklemesi önceki aracı günlüklerini siler.
Aracı günlüklerini aşağıdaki konumlarda bulabilirsiniz:
- Uygulama Hizmetleri:
- App Service'inizin Kudu sitesine (yani <uygulama hizmetinize>) gidin.scm.azurewebsites.net) ve Hata Ayıklama Konsolu'na gidin.
- Aracı günlükleri şu dizinde depolanır: D:\home\LogFiles\SiteExtensions\DiagnosticsAgentLogs\.
- VM/VMSS:
- VM'nizde oturum açın, aracı günlükleri şu şekilde depolanır: C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<Version>\SnapshotDebuggerAgent*.txt_
- AKS
- Şu dizine gidin: /tmp/diag/AgentLogs/*
Profil Oluşturucu/İzleme günlüklerini etkinleştirme
İzleme günlüklerini aşağıdaki konumlarda bulabilirsiniz:
- Uygulama Hizmetleri:
- Hata günlüğü otomatik olarak D:\Home\LogFiles\eventlog.xml'e gönderilir, olaylar veya "Üretim Kesme Noktaları" ile
<Provider Name="Instrumentation Engine" />işaretlenir
- Hata günlüğü otomatik olarak D:\Home\LogFiles\eventlog.xml'e gönderilir, olaylar veya "Üretim Kesme Noktaları" ile
- VM/VMSS:
- VM'nizde oturum açın ve Olay Görüntüleyicisi açın.
- Şu görünümü açın: Windows Günlükleri>Uygulaması.
- Üretim Kesme Noktalarını veya İzleme Altyapısını kullanarak Geçerli Günlüğü Olay Kaynağına göre filtreleyin.
- AKS
- /tmp/diag/log.txt 'de izleme altyapısı günlüğü (DockerFile'da ayarlanır
MicrosoftInstrumentationEngine_FileLogPath) - /tmp/diag/shLog.txt konumunda ProductionBreakpoint günlüğü
- /tmp/diag/log.txt 'de izleme altyapısı günlüğü (DockerFile'da ayarlanır
Bilinen sorunlar
- Aynı App Service'e karşı birden çok Visual Studio istemcisiyle anlık görüntü hata ayıklaması şu anda desteklenmemektedir.
- Roslyn IL iyileştirmeleri ASP.NET Core projelerinde tam olarak desteklenmez. Bazı ASP.NET Core projeleri için bazı değişkenleri göremeyebilir veya bazı değişkenleri koşullu deyimlerde kullanamayabilirsiniz.
- veya
$CALLERgibi$FUNCTIONözel değişkenler, ASP.NET Core projeleri için koşullu deyimlerde veya günlük noktalarında değerlendirilemez. - Yerel Önbelleğe Alma özelliğinin açık olduğu App Services'te anlık görüntü hata ayıklaması çalışmaz.
- Anlık görüntü hata ayıklama API Uygulamaları şu anda desteklenmiyor.
Site uzantısı yükseltmesi
Anlık Görüntü Hata Ayıklama ve Application Insights, site işlemine yüklenen ve yükseltme sırasında dosya kilitleme sorunlarına neden olan bir ICorProfiler'a bağlıdır. Üretim sitenizde herhangi bir zaman kalmadığından emin olmak için bu süreci öneririz.
- App Service'inizde bir Dağıtım Yuvası oluşturun ve sitenizi Yuvaya dağıtın.
- Yuvayı Visual Studio'daki Bulut Gezgini'nden veya Azure portalından üretimle değiştirin.
- Yuva sitesini durdurun. Tüm örneklerden site w3wp.exe işlemini sonlandırmak birkaç saniye sürer.
- Yuva sitesi uzantısını Kudu sitesinden veya Azure portalından (App Service Dikey Pencere > Geliştirme Araçları > Uzantıları > Güncelleştirmesi) yükseltin.
- Yuva sitesini başlatın. Yeniden ısınmak için siteyi ziyaret etmenizi öneririz.
- Yuvayı üretimle değiştirin.
Başvurular
- Visual Studio’da hata ayıklama
- Snapshot Debugger kullanarak canlı ASP.NET uygulamalarında hata ayıklama
- Snapshot Debugger kullanarak Azure Sanal Makineler\Sanal Makineler Ölçek Kümelerini canlı ASP.NET hata ayıklama
- Snapshot Debugger kullanarak Azure Kubernetes ASP.NET canlı hata ayıklama
- Anlık görüntü hatalarını ayıklama hakkında SSS