Visual Studio kullanarak Azure Uygulaması Hizmeti'nde uygulama sorunlarını giderme
Not
Bu makale Visual Studio 2019 içindir. Visual Studio 2022'de sorun giderme için bkz. Azure Uygulaması Hizmetinde Uzaktan Hata Ayıklama ASP.NET Çekirdek.
Genel bakış
Bu öğreticide, uygulama hatalarını ayıklama modunda uzaktan çalıştırarak veya uygulama günlüklerini ve web sunucusu günlüklerini görüntüleyerek App Service'te bir uygulamada hata ayıklamaya yardımcı olmak için Visual Studio araçlarının nasıl kullanılacağı gösterilmektedir.
Şunları öğreneceksiniz:
- Visual Studio'da hangi uygulama yönetimi işlevlerinin kullanılabildiği.
- Uzak bir uygulamada hızlı değişiklikler yapmak için Visual Studio uzak görünümünü kullanma.
- Azure'da bir proje çalışırken hem uygulama hem de Web İşi için hata ayıklama modunu uzaktan çalıştırma.
- Uygulama izleme günlükleri oluşturma ve uygulama bunları oluştururken görüntüleme.
- Ayrıntılı hata iletileri ve başarısız istek izleme dahil olmak üzere web sunucusu günlüklerini görüntüleme.
- Tanılama günlüklerini bir Azure Depolama hesabına gönderme ve orada görüntüleme.
Visual Studio Ultimate kullanıyorsanız, hata ayıklama için IntelliTrace'i de kullanabilirsiniz. IntelliTrace bu öğreticide ele alınmamıştır.
Önkoşullar
Bu öğretici, Azure Uygulaması Service'te ASP.NET uygulaması oluşturma bölümünde ayarladığınız geliştirme ortamı, web projesi ve App Service uygulamasıyla çalışır. Web İşleri bölümleri için Azure Web İşleri SDK'sını Kullanmaya Başlama bölümünde oluşturduğunuz uygulamaya ihtiyacınız olacaktır.
Bu öğreticide gösterilen kod örnekleri bir C# MVC web uygulamasına yöneliktir, ancak sorun giderme yordamları Visual Basic ve Web Forms uygulamaları için aynıdır.
Öğreticide Visual Studio 2019 kullandığınız varsayılır.
Akış günlükleri özelliği yalnızca .NET Framework 4 veya üzerini hedefleyen uygulamalar için çalışır.
Uygulama yapılandırması ve yönetimi
Visual Studio, Azure portalında sağlanan uygulama yönetimi işlevlerinin ve yapılandırma ayarlarının bir alt kümesine erişim sağlar. Bu bölümde, Sunucu Gezgini'ne tıklayarak neler sunulabileceklerini göreceksiniz. En son Azure tümleştirme özelliklerini görmek için Bulut Gezgini'ni de deneyin. Her iki pencereyi de Görünüm menüsünden açabilirsiniz.
Visual Studio'da Azure'da henüz oturum açmadıysanız Azure'a sağ tıklayın ve Sunucu Gezgini'nde Microsoft Azure Aboneliğine Bağlan'ı seçin.
Alternatif olarak hesabınıza erişim sağlayan bir yönetim sertifikası yükleyebilirsiniz. Sertifika yüklemeyi seçerseniz, Sunucu Gezgini'nde Azure düğümüne sağ tıklayın ve bağlam menüsünde Abonelikleri Yönet ve Filtrele'yi seçin. Microsoft Azure Aboneliklerini Yönet iletişim kutusunda Sertifikalar sekmesine ve ardından İçeri Aktar'a tıklayın. Azure hesabınız için abonelik dosyasını (.publishsettings dosyası olarak da adlandırılır) indirmek ve içeri aktarmak için yönergeleri izleyin.
Not
Bir abonelik dosyası indirirseniz, dosyayı kaynak kod dizinlerinizin dışındaki bir klasöre kaydedin (örneğin, İndirilenler klasöründe) ve içeri aktarma işlemi tamamlandıktan sonra silin. Abonelik dosyasına erişim elde eden kötü amaçlı bir kullanıcı Azure hizmetlerinizi düzenleyebilir, oluşturabilir ve silebilir.
Visual Studio'dan Azure kaynaklarına bağlanma hakkında daha fazla bilgi için bkz . Azure portalını kullanarak Azure rolleri atama.
Sunucu Gezgini'nde Azure'ı ve App Service'i genişletin.
Azure Uygulaması Hizmetinde ASP.NET uygulaması oluşturma bölümünde oluşturduğunuz uygulamayı içeren kaynak grubunu genişletin ve ardından uygulama düğümüne sağ tıklayın ve Ayarları Görüntüle'ye tıklayın.
Azure Web App sekmesi görüntülenir ve Burada Visual Studio'da kullanılabilen uygulama yönetimi ve yapılandırma görevlerini görebilirsiniz.
Bu öğreticide günlük ve izleme açılan listelerini kullanacaksınız. Ayrıca uzaktan hata ayıklamayı da kullanacaksınız, ancak bunu etkinleştirmek için farklı bir yöntem kullanacaksınız.
Bu penceredeki Uygulama Ayarları ve Bağlantı Dizeleri kutuları hakkında bilgi için bkz. Azure Uygulaması Hizmeti: Uygulama Dizeleri ve Bağlantı Dizeleri Nasıl Çalışır?
Bu pencerede yapılamayan bir uygulama yönetimi görevi gerçekleştirmek istiyorsanız, Azure portalında bir tarayıcı penceresi açmak için Yönetim Portalı'nda Aç'a tıklayın.
Sunucu Gezgini'nde uygulama dosyalarına erişme
Web.config dosyasında bayrağı veya RemoteOnly
olarak ayarlanmış On
bir web projesi customErrors
dağıtırsınız. Bu, bir sorun oluştuğunda yararlı bir hata iletisi almadığınız anlamına gelir. Birçok hata için tek elde ettiğiniz aşağıdakilerden biri gibi bir sayfadır:
'/' Uygulamasında Sunucu Hatası:
Bir hata oluştu:
Web sitesi sayfayı görüntüleyemiyor
Genellikle hatanın nedenini bulmanın en kolay yolu, yukarıdaki ekran görüntülerinden ilkinin nasıl yapılacağını açıkladığı ayrıntılı hata iletilerini etkinleştirmektir. Bunun için dağıtılan Web.config dosyasında bir değişiklik yapılması gerekir. Web.config dosyasını projede düzenleyebilir ve projeyi yeniden dağıtabilir veya bir Web.config
dönüşüm oluşturup hata ayıklama derlemesi dağıtabilirsiniz, ancak daha hızlı bir yolu vardır: Çözüm Gezgini, uzak uygulamadaki dosyaları uzaktan görüntüleme özelliğini kullanarak doğrudan görüntüleyebilir ve düzenleyebilirsiniz.
Sunucu Gezgini'nde Azure'ı genişletin, App Service'i genişletin, uygulamanızın bulunduğu kaynak grubunu genişletin ve ardından uygulamanızın düğümünü genişletin.
Uygulamanın içerik dosyalarına ve günlük dosyalarına erişmenizi sağlayan düğümler görürsünüz.
Dosyalar düğümünü genişletin ve Web.config dosyasına çift tıklayın.
Visual Studio, uzak uygulamadan Web.config dosyasını açar ve başlık çubuğunda dosya adının yanında [Uzak] öğesini gösterir.
öğesine aşağıdaki satırı
system.web
ekleyin:<customErrors mode="Off"></customErrors>
Yararlı olmayan hata iletisini gösteren tarayıcıyı yenileyin ve şimdi aşağıdaki örnek gibi ayrıntılı bir hata iletisi alırsınız:
(Gösterilen hata, kırmızı ile gösterilen çizgiViews\Home\Index.cshtml.)
Web.config dosyasını düzenlemek, App Service uygulamanızdaki dosyaları okuma ve düzenleme özelliğinin sorun gidermeyi kolaylaştırdığı senaryoların yalnızca bir örneğidir.
Uzaktan hata ayıklama uygulamaları
Ayrıntılı hata iletisi yeterli bilgi sağlamıyorsa ve hatayı yerel olarak yeniden oluşturamıyorsanız, sorun gidermenin başka bir yolu da uzaktan hata ayıklama modunda çalıştırmaktır. Kesme noktaları ayarlayabilir, belleği doğrudan işleyebilir, kodda adım adım ilerleyebilir ve hatta kod yolunu değiştirebilirsiniz.
Uzaktan hata ayıklama, Visual Studio'nun Express sürümlerinde çalışmaz.
Bu bölümde, Azure Uygulaması Hizmetinde ASP.NET uygulaması oluşturma bölümünde oluşturduğunuz projeyi kullanarak uzaktan hata ayıklama gösterilmektedir.
Azure Uygulaması Hizmetinde ASP.NET uygulaması oluşturma bölümünde oluşturduğunuz web projesini açın.
Denetleyiciler\HomeController.cs açın.
About()
yöntemini silin ve aşağıdaki kodu yerine ekleyin.public ActionResult About() { string currentTime = DateTime.Now.ToLongTimeString(); ViewBag.Message = "The current time is " + currentTime; return View(); }
Satırda
ViewBag.Message
bir kesme noktası ayarlayın.Çözüm Gezgini'da projeye sağ tıklayın ve Yayımla'ya tıklayın.
Profil açılan listesinde, Azure Uygulaması Hizmetinde ASP.NET uygulaması oluşturma bölümünde kullandığınız profili seçin. Ardından Ayarlar'a tıklayın.
Yayımla iletişim kutusunda Ayarlar sekmesine tıklayın ve yapılandırmayı Hata Ayıklama olarak değiştirip Kaydet'e tıklayın.
Yayımla öğesine tıklayın. Dağıtım tamamlandıktan ve tarayıcınız uygulamanızın Azure URL'sinde açıldıktan sonra tarayıcıyı kapatın.
Sunucu Gezgini'nde, uygulamanıza sağ tıklayın ve ardından Hata Ayıklayıcı Ekle'ye tıklayın.
Tarayıcı otomatik olarak Azure'da çalışan giriş sayfanızda açılır. Azure sunucuyu hata ayıklama için ayarlarken 20 saniye kadar beklemeniz gerekebilir. Bu gecikme yalnızca 48 saatlik bir süre içinde bir uygulamada hata ayıklama modunda ilk kez çalıştırdığınızda gerçekleşir. Hata ayıklamayı aynı dönemde yeniden başlattığınızda gecikme olmaz.
Not
Hata ayıklayıcıyı başlatırken sorun yaşıyorsanız, bunu Sunucu Gezgini yerine Bulut Gezgini'ni kullanarak yapmayı deneyin.
Menüde Hakkında'ya tıklayın.
Visual Studio kesme noktasında durur ve kod yerel bilgisayarınızda değil Azure'da çalışır.
Zaman değerini görmek için değişkenin üzerine
currentTime
gelin.Gördüğünüz saat, yerel bilgisayarınızdan farklı bir saat diliminde olabilecek Azure sunucu saatidir.
Değişken için "Şimdi Azure'da
currentTime
çalıştırılıyor" gibi yeni bir değer girin.Çalışmaya devam etmek için F5 tuşuna basın.
Azure'da çalışan Hakkında sayfası currentTime değişkenine girdiğiniz yeni değeri görüntüler.
WebJobs ile uzaktan hata ayıklama
Bu bölümde, Azure Webjobs SDK'sını Kullanmaya Başlama bölümünde oluşturduğunuz proje ve uygulamayı kullanarak uzaktan hata ayıklama gösterilmektedir.
Bu bölümde gösterilen özellikler yalnızca Visual Studio 2013 Güncelleştirme 4 veya üzeri sürümlerde kullanılabilir.
Uzaktan hata ayıklama yalnızca sürekli Web İşleri ile çalışır. Zamanlanmış ve isteğe bağlı Web İşleri hata ayıklamayı desteklemez.
Azure Web İşleri SDK'sını Kullanmaya Başlama bölümünde oluşturduğunuz web projesini açın.
ContosoAdsWebJob projesinde Functions.cs açın.
yöntemindeki ilk deyimde
GenerateThumbnail
bir kesme noktası ayarlayın.Çözüm Gezgini'da web projesine (Web İşi projesine değil) sağ tıklayın ve Yayımla'ya tıklayın.
Profil açılan listesinde, Azure Web İşleri SDK'sını Kullanmaya Başlama bölümünde kullandığınız profilin aynısını seçin.
Ayarlar sekmesine tıklayın, Yapılandırma'yı Hata Ayıklama olarak değiştirin ve yayımla'ya tıklayın.
Visual Studio web ve Web İşi projelerini dağıtır ve tarayıcınız uygulamanızın Azure URL'sinde açılır.
Sunucu Gezgini'nde Azure App Service > kaynak grubunuz > olan uygulamanızın > Web İşleri > Sürekli'yi genişletin ve ContosoAdsWebJob'a sağ tıklayın.>
Hata Ayıklayıcısı Ekle'ye tıklayın.
Tarayıcı otomatik olarak Azure'da çalışan giriş sayfanızda açılır. Azure sunucuyu hata ayıklama için ayarlarken 20 saniye kadar beklemeniz gerekebilir. Bu gecikme yalnızca 48 saatlik bir süre içinde bir uygulamada hata ayıklama modunda ilk kez çalıştırdığınızda gerçekleşir. Hata ayıklamayı aynı dönemde yeniden başlattığınızda gecikme olmaz.
Contoso Ads giriş sayfasına açılan web tarayıcısında yeni bir reklam oluşturun.
Reklam oluşturmak, Web İşi tarafından alınan ve işlenen bir kuyruk iletisi oluşturulmasına neden olur. Web İşleri SDK'sı kuyruk iletisini işlemek için işlevini çağırdığında kod kesme noktanıza isabet eder.
Hata ayıklayıcısı kesme noktanızda kesildiğinde, program bulutu çalıştırırken değişken değerlerini inceleyebilir ve değiştirebilirsiniz. Aşağıdaki çizimde, hata ayıklayıcısı yöntemine geçirilen blobInfo nesnesinin
GenerateThumbnail
içeriğini gösterir.Çalışmaya devam etmek için F5 tuşuna basın.
yöntemi küçük
GenerateThumbnail
resim oluşturmayı tamamlar.Tarayıcıda Dizin sayfasını yenilediğinizde küçük resmi görürsünüz.
Visual Studio'da hata ayıklamayı durdurmak için SHIFT+F5 tuşlarına basın.
Sunucu Gezgini'nde ContosoAdsWebJob düğümüne sağ tıklayın ve Panoyu Görüntüle'ye tıklayın.
Azure kimlik bilgilerinizle oturum açın ve web işinizin sayfasına gitmek için Web İşi adına tıklayın.
Pano, işlevin
GenerateThumbnail
yakın zamanda yürütüldüğünü gösterir.(Bir sonraki tıklamanızda Panoyu Görüntüle'de oturum açmanız gerekmez ve tarayıcı doğrudan Web İşinin sayfasına gider.)
İşlev yürütme hakkındaki ayrıntıları görmek için işlev adına tıklayın.
İşleviniz günlükleri yazdıysa, bunları görmek için ToggleOutput'a tıklayabilirsiniz.
Uzaktan hata ayıklama hakkında notlar
Üretimde hata ayıklama modunda çalıştırılması önerilmez. Üretim uygulamanızın ölçeği birden çok sunucu örneğine genişletilmemişse, hata ayıklama web sunucusunun diğer isteklere yanıt vermesini engeller. Birden çok web sunucusu örneğiniz varsa, hata ayıklayıcıya eklediğinizde rastgele bir örnek alırsınız ve sonraki tarayıcı isteklerinin aynı örneğe gitmesini sağlamanın hiçbir yolu yoktur. Ayrıca, genellikle üretime bir hata ayıklama derlemesi dağıtmazsınız ve yayın derlemeleri için derleyici iyileştirmeleri, kaynak kodunuzda neler olduğunu satır satır göstermenizi imkansız hale getirebilir. Üretim sorunlarını gidermek için en iyi kaynağınız uygulama izleme ve web sunucusu günlükleridir.
Uzaktan hata ayıklama sırasında kesme noktalarında uzun duraklardan kaçının. Azure, birkaç dakikadan uzun süre durdurulan bir işlemi yanıt vermeyen bir işlem olarak ele alır ve kapatır.
Hata ayıklarken, sunucu Visual Studio'ya veri gönderir ve bu da bant genişliği ücretlerini etkileyebilir. Bant genişliği oranları hakkında bilgi için bkz . Azure Fiyatlandırması.
Web.config dosyasındaki öğesinin özniteliğinin
compilation
true olarak ayarlandığından emindebug
olun. Hata ayıklama derleme yapılandırması yayımladığınızda varsayılan olarak true olarak ayarlanır.<system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>
Hata ayıklayıcının hata ayıklamak istediğiniz koda adım atmadığını fark ederseniz, Yalnızca Kodum ayarını değiştirmeniz gerekebilir. Daha fazla bilgi için bkz. Visual Studio'da Just My Code kullanarak yalnızca kullanıcı kodunda hata ayıklama yapılıp yapılmayacağını belirtme.
Uzaktan hata ayıklama özelliğini etkinleştirdiğinizde sunucuda bir zamanlayıcı başlatılır ve 48 saat sonra özellik otomatik olarak kapatılır. Bu 48 saatlik sınır, güvenlik ve performans nedenleriyle gerçekleştirilir. Özelliği istediğiniz kadar kolayca yeniden açabilirsiniz. Etkin olarak hata ayıklamadığınızda devre dışı bırakmanızı öneririz.
Hata ayıklayıcıyı yalnızca uygulama işlemine (w3wp.exe) değil, herhangi bir işleme el ile ekleyebilirsiniz. Visual Studio'da hata ayıklama modunu kullanma hakkında daha fazla bilgi için bkz . Visual Studio'da hata ayıklama.
Tanılama günlüklerine genel bakış
App Service uygulamasında çalışan bir ASP.NET uygulaması aşağıdaki günlük türlerini oluşturabilir:
- Uygulama izleme günlükleri
Uygulama, System.Diagnostics.Trace sınıfının yöntemlerini çağırarak bu günlükleri oluşturur. - Web sunucusu günlükleri
Web sunucusu, uygulamaya yapılan her HTTP isteği için bir günlük girdisi oluşturur. - Ayrıntılı hata iletisi günlükleri
Web sunucusu, başarısız HTTP istekleri (durum kodu 400 veya üzeri ile sonuçlayan istekler) için bazı ek bilgiler içeren bir HTML sayfası oluşturur. - Başarısız istek izleme günlükleri
Web sunucusu, başarısız HTTP istekleri için ayrıntılı izleme bilgilerini içeren bir XML dosyası oluşturur. Web sunucusu, tarayıcıda XML'yi biçimlendirmek için bir XSL dosyası da sağlar.
Günlük kaydı uygulama performansını etkiler, bu nedenle Azure size her günlük türünü gerektiği gibi etkinleştirme veya devre dışı bırakma olanağı sunar. Uygulama günlükleri için yalnızca belirli bir önem düzeyi üzerindeki günlüklerin yazılması gerektiğini belirtebilirsiniz. Yeni bir uygulama oluşturduğunuzda, varsayılan olarak tüm günlükler devre dışı bırakılır.
Günlükler, uygulamanızın dosya sistemindeki LogFiles klasöründeki dosyalara yazılır ve FTP aracılığıyla erişilebilir. Web sunucusu günlükleri ve uygulama günlükleri bir Azure Depolama hesabına da yazılabilir. Depolama hesabında, dosya sisteminde mümkün olandan daha fazla günlük tutabilirsiniz. Dosya sistemini kullanırken en fazla 100 megabayt günlükle sınırlısınız. (Dosya sistemi günlükleri yalnızca kısa süreli saklama içindir. Azure, sınıra ulaşıldıktan sonra yeni dosyalara yer açmak için eski günlük dosyalarını siler.)
Uygulama izleme günlüklerini oluşturma ve görüntüleme
Bu bölümde aşağıdaki görevleri yerine getirin:
- Azure'ı kullanmaya başlama ve ASP.NET bölümünde oluşturduğunuz web projesine izleme deyimleri ekleyin.
- Projeyi yerel olarak çalıştırdığınızda günlükleri görüntüleyin.
- Azure'da çalışan uygulama tarafından oluşturulan günlükleri görüntüleyin.
Web İşleri'nde uygulama günlükleri oluşturma hakkında bilgi için bkz . Web İşleri SDK'sını kullanarak Azure kuyruk depolama ile çalışma - Günlükleri yazma. Günlükleri görüntülemek ve Bunların Azure'da nasıl depolandığını denetlemek için aşağıdaki yönergeler, Web İşleri tarafından oluşturulan uygulama günlükleri için de geçerlidir.
Uygulamaya izleme deyimleri ekleme
Controllers\HomeController.cs dosyasını açın ve deyimlerini ve deyimini eklemek
Trace
içinSystem.Diagnostics
,About
veusing
Contact
yöntemlerini aşağıdaki kodla değiştirinIndex
:public ActionResult Index() { Trace.WriteLine("Entering Index method"); ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application."; Trace.TraceInformation("Displaying the Index page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Index method"); return View(); } public ActionResult About() { Trace.WriteLine("Entering About method"); ViewBag.Message = "Your app description page."; Trace.TraceWarning("Transient error on the About page at " + DateTime.Now.ToShortTimeString()); Trace.WriteLine("Leaving About method"); return View(); } public ActionResult Contact() { Trace.WriteLine("Entering Contact method"); ViewBag.Message = "Your contact page."; Trace.TraceError("Fatal error on the Contact page at " + DateTime.Now.ToLongTimeString()); Trace.WriteLine("Leaving Contact method"); return View(); }
Dosyanın en üstüne bir
using System.Diagnostics;
deyim ekleyin.
İzleme çıkışını yerel olarak görüntüleme
Uygulamayı hata ayıklama modunda çalıştırmak için F5 tuşuna basın.
Varsayılan izleme dinleyicisi, diğer Hata Ayıklama çıkışıyla birlikte tüm izleme çıkışını Çıkış penceresine yazar. Aşağıdaki çizimde yöntemine eklediğiniz izleme deyimlerinin çıkışı gösterilmektedir
Index
.Aşağıdaki adımlarda, hata ayıklama modunda derlemeden bir web sayfasında izleme çıkışını görüntüleme adımları gösterilmektedir.
Application Web.config dosyasını (proje klasöründe bulunan dosya) açın ve dosyanın sonuna kapanış
</configuration>
öğesinin hemen öncesine bir<system.diagnostics>
öğe ekleyin:<system.diagnostics> <trace> <listeners> <add name="WebPageTraceListener" type="System.Web.WebPageTraceListener, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </listeners> </trace> </system.diagnostics>
, WebPageTraceListener
adresine göz atarak izleme çıktısını /trace.axd
görüntülemenizi sağlar.
Web.config dosyasında altına
<system.web>
aşağıdaki örnek gibi bir izleme öğesi ekleyin:<trace enabled="true" writeToDiagnosticsTrace="true" mostRecent="true" pageOutput="false" />
Uygulamayı çalıştırmak için CTRL+F5'e basın.
Tarayıcı penceresinin adres çubuğuna URL'ye trace.axd ekleyin ve enter tuşuna basın (URL şuna benzer
http://localhost:53370/trace.axd
).Uygulama İzleme sayfasında, ilk satırda (BrowserLink satırına değil) Ayrıntıları Görüntüle'ye tıklayın.
İstek Ayrıntıları sayfası görüntülenir ve İzleme Bilgileri bölümünde yöntemine eklediğiniz izleme deyimlerinin çıkışını
Index
görürsünüz.Varsayılan olarak,
trace.axd
yalnızca yerel olarak kullanılabilir. Uzak bir uygulamadan kullanılabilir hale getirmek isterseniz, aşağıdaki örnekte gösterildiği gibi Web.config dosyasındaki öğesine ekleyebilirsiniz:localOnly="false"
trace
<trace enabled="true" writeToDiagnosticsTrace="true" localOnly="false" mostRecent="true" pageOutput="false" />
Ancak, güvenlik nedeniyle üretim uygulamasında etkinleştirme
trace.axd
önerilmez. Aşağıdaki bölümlerde, bir App Service uygulamasında izleme günlüklerini okumanın daha kolay bir yolunu göreceksiniz.
Azure'da izleme çıkışını görüntüleme
Çözüm Gezgini web projesine sağ tıklayın ve Yayımla'ya tıklayın.
Web'i Yayımla iletişim kutusunda Yayımla'ya tıklayın.
Visual Studio güncelleştirmenizi yayımladıktan sonra giriş sayfanıza bir tarayıcı penceresi açar (Bağlantı sekmesinde Hedef URL'yi temizlemediğiniz varsayılarak).
Sunucu Gezgini'nde uygulamanıza sağ tıklayın ve Akış Günlüklerini Görüntüle'yi seçin.
Çıkış penceresi, günlük akışı hizmetine bağlı olduğunuzu gösterir ve görüntülenecek günlük olmadan geçen her dakika bir bildirim satırı ekler.
Uygulamanızın giriş sayfasını gösteren tarayıcı penceresinde Kişi'ye tıklayın.
Birkaç saniye içinde, yönteme eklediğiniz hata düzeyi izlemesinin
Contact
çıkışı Çıkış penceresinde görüntülenir.Visual Studio yalnızca hata düzeyi izlemeleri gösteriyor çünkü günlük izleme hizmetini etkinleştirdiğinizde varsayılan ayar budur. Yeni bir App Service uygulaması oluşturduğunuzda, ayarlar sayfasını daha önce açtığınızda gördüğünüz gibi tüm günlükler varsayılan olarak devre dışı bırakılır:
Ancak, Akış Günlüklerini Görüntüle'yi seçtiğinizde Visual Studio, Uygulama Günlüğü'nü (Dosya Sistemi) otomatik olarak Hata olarak değiştirdi; bu da hata düzeyi günlüklerin bildirildiği anlamına gelir. Tüm izleme günlüklerinizi görmek için bu ayarı Ayrıntılı olarak değiştirebilirsiniz. Hatadan daha düşük bir önem düzeyi seçtiğinizde, daha yüksek önem düzeyine yönelik tüm günlükler de bildirilir. Bu nedenle ayrıntılı seçeneğini belirlediğinizde bilgi, uyarı ve hata günlüklerini de görürsünüz.
Sunucu Gezgini'nde uygulamaya sağ tıklayın ve daha önce yaptığınız gibi Ayarları Görüntüle'ye tıklayın.
Uygulama Günlüğünü (Dosya Sistemi) Ayrıntılı olarak değiştirin ve Kaydet'e tıklayın.
Kişi sayfanızı gösteren tarayıcı penceresinde Giriş'e, hakkında'ya ve ardından Kişi'ye tıklayın.
Birkaç saniye içinde Çıkış penceresi tüm izleme çıkışınızı gösterir.
Bu bölümde, uygulama ayarlarını kullanarak günlüğe kaydetmeyi etkinleştirmiş ve devre dışı bırakmıştınız. Ayrıca, Web.config dosyasını değiştirerek izleme dinleyicilerini etkinleştirebilir ve devre dışı bırakabilirsiniz. Ancak Web.config dosyasının değiştirilmesi uygulama etki alanının geri dönüşümüne neden olurken, uygulama yapılandırması aracılığıyla günlüğe kaydetmeyi etkinleştirmek bunu yapmaz. Sorunun yeniden üretilmesi uzun sürüyorsa veya aralıklıysa, uygulama etki alanını geri dönüştürmek bunu "düzeltebilir" ve yeniden gerçekleşene kadar beklemeye zorlayabilir. Azure'da tanılamayı etkinleştirmek, uygulama etki alanını geri dönüştürmeden hata bilgilerini hemen yakalamaya başlamanızı sağlar.
Çıkış penceresi özellikleri
Çıktı Penceresi'nin Microsoft Azure Günlükleri sekmesinde birkaç düğme ve bir metin kutusu vardır:
Bunlar aşağıdaki işlevleri gerçekleştirir:
- Çıkış penceresini temizleyin.
- Sözcük kaydırmayı etkinleştirin veya devre dışı bırakın.
- İzleme günlüklerini başlatın veya durdurun.
- hangi günlüklerin izleneceğini belirtin.
- Günlükleri indirin.
- Günlükleri bir arama dizesine veya normal ifadeye göre filtreleyin.
- Çıkış penceresini kapatın.
Bir arama dizesi veya normal ifade girerseniz, Visual Studio istemcideki günlük bilgilerini filtreler. Bu, çıkış penceresinde günlükler görüntülendikten sonra ölçütleri girebileceğiniz ve günlükleri yeniden oluşturmak zorunda kalmadan filtreleme ölçütlerini değiştirebileceğiniz anlamına gelir.
Web sunucusu günlüklerini görüntüleme
Web sunucusu günlükleri, uygulama için tüm HTTP etkinliğini kaydeder. Bunları Çıkış penceresinde görmek için uygulama için etkinleştirmeniz ve Visual Studio'ya bunları izlemek istediğinizi söylemeniz gerekir.
Sunucu Gezgini'nden açtığınız Azure Web Uygulama Yapılandırması sekmesinde Web Sunucusu Günlüğü'ni Açık olarak değiştirin ve Kaydet'e tıklayın.
Çıkış Penceresinde hangi Microsoft Azure günlüklerinin izleneceğini belirtin düğmesine tıklayın.
Microsoft Azure Günlük Seçenekleri iletişim kutusunda Web sunucusu günlükleri'ni seçin ve tamam'a tıklayın.
Uygulamayı gösteren tarayıcı penceresinde Giriş'e ve ardından Hakkında'ya ve ardından Kişi'ye tıklayın.
Uygulama günlükleri genellikle önce görünür, ardından web sunucusu günlükleri gelir. Günlüklerin görünmesi için bir süre beklemeniz gerekebilir.
Varsayılan olarak, Visual Studio kullanarak web sunucusu günlüklerini ilk kez etkinleştirdiğinizde Azure günlükleri dosya sistemine yazar. Alternatif olarak Azure portalını kullanarak web sunucusu günlüklerinin bir depolama hesabındaki blob kapsayıcısına yazılması gerektiğini belirtebilirsiniz.
Azure depolama hesabında web sunucusu günlüğünü etkinleştirmek için portalı kullanır ve sonra Visual Studio'da günlüğe kaydetmeyi devre dışı bırakırsanız, Visual Studio'da günlüğe kaydetmeyi yeniden etkinleştirdiğinizde depolama hesabı ayarlarınız geri yüklenir.
Ayrıntılı hata iletisi günlüklerini görüntüleme
Ayrıntılı hata günlükleri, hata yanıt kodlarıyla (400 veya üzeri) sonuçlanan HTTP istekleri hakkında bazı ek bilgiler sağlar. Bunları Çıkış penceresinde görmek için uygulama için etkinleştirmeniz ve Visual Studio'ya bunları izlemek istediğinizi söylemeniz gerekir.
Sunucu Gezgini'nden açtığınız Azure Web Uygulama Yapılandırması sekmesinde Ayrıntılı Hata İletileri'ni Açık olarak değiştirin ve Kaydet'e tıklayın.
Çıkış Penceresinde hangi Microsoft Azure günlüklerinin izleneceğini belirtin düğmesine tıklayın.
Microsoft Azure Günlük Seçenekleri iletişim kutusunda Tüm günlükler'e ve ardından Tamam'a tıklayın.
Tarayıcı penceresinin adres çubuğunda, URL'ye 404 hatasına (örneğin,
http://localhost:53370/Home/Contactx
) neden olacak fazladan bir karakter ekleyin ve Enter tuşuna basın.Birkaç saniye sonra, Visual Studio Çıkış penceresinde ayrıntılı hata günlüğü görüntülenir.
Tarayıcıda biçimlendirilmiş günlük çıkışını görmek için Control tuşuna basılı tutarak bağlantıya tıklayın:
Dosya sistemi günlüklerini indirme
Çıkış penceresinde izleyebileceğiniz tüm günlükler .zip dosyası olarak da indirilebilir.
Çıkış penceresinde Akış Günlüklerini İndir'e tıklayın.
Dosya Gezginiİndirilen dosyanın seçili olduğu İndirilenler klasörü.
.zip dosyasını ayıkladığınızda aşağıdaki klasör yapısını görürsünüz:
Uygulama izleme günlükleri LogFiles\Application klasöründeki .txt dosyalarında bulunur.
Web sunucusu günlükleri LogFiles\http\RawLogs klasöründeki .log dosyalarında bulunur. Bu dosyaları görüntülemek ve işlemek için Günlük Ayrıştırıcısı gibi bir araç kullanabilirsiniz.
Ayrıntılı hata iletisi günlükleri LogFiles\DetailedErrors klasöründeki .html dosyalarda bulunur.
(Dağıtımlar klasörü, kaynak denetimi yayımlaması tarafından oluşturulan dosyalar içindir; Visual Studio yayımlamayla ilgili hiçbir şeyi yoktur. Git klasörü, kaynak denetimi yayımlama ve günlük dosyası akış hizmetiyle ilgili izlemeler içindir.)
Başarısız istek izleme günlüklerini görüntüleme
BAŞARıSıZ istek izleme günlükleri, URL yeniden yazma veya kimlik doğrulama sorunları gibi senaryolarda IIS'nin BIR HTTP isteğini nasıl işlediğiyle ilgili ayrıntıları anlamanız gerektiğinde yararlıdır.
App Service uygulamaları, IIS 7.0 ve sonraki sürümlerde kullanılabilen aynı başarısız istek izleme işlevini kullanır. Ancak, hangi hataların günlüğe kaydedildiğini yapılandıran IIS ayarlarına erişiminiz yoktur. Başarısız istek izlemeyi etkinleştirdiğinizde, tüm hatalar yakalanır.
Visual Studio'yu kullanarak başarısız istek izlemeyi etkinleştirebilirsiniz, ancak bunları Visual Studio'da görüntüleyemezsiniz. Bu günlükler XML dosyalarıdır. Akış günlüğü hizmeti yalnızca düz metin modunda okunabilir olduğu kabul edilen dosyaları izler: .txt, .html ve .log dosyaları.
Başarısız istek izleme günlüklerini, ftp aracını kullanarak yerel bilgisayarınıza indirdikten sonra doğrudan FTP veya yerel olarak tarayıcıda görüntüleyebilirsiniz. Bu bölümde, bunları doğrudan bir tarayıcıda görüntüleyebilirsiniz.
Sunucu Gezgini'nden açtığınız Azure Web App penceresinin Yapılandırma sekmesinde Başarısız İstek İzleme'yi Açık olarak değiştirin ve Kaydet'e tıklayın.
Uygulamayı gösteren tarayıcı penceresinin adres çubuğunda URL'ye fazladan bir karakter ekleyin ve 404 hatasına neden olmak için Enter'a tıklayın.
Bu, başarısız bir istek izleme günlüğünün oluşturulmasına neden olur ve aşağıdaki adımlarda günlüğün nasıl görüntülenip indirileceği gösterilir.
Visual Studio'da, Azure Web App penceresinin Yapılandırma sekmesinde Yönetim Portalı'nda Aç'a tıklayın.
Uygulamanızın Azure portalı Ayarlar sayfasında Dağıtım kimlik bilgileri'ne tıklayın ve yeni bir kullanıcı adı ve parola girin.
Not
Oturum açtığınızda, uygulama adının önüne ekli tam kullanıcı adını kullanmanız gerekir. Örneğin, kullanıcı adı olarak "myid" girerseniz ve site "myexample" ise, "myexample\myid" olarak oturum açarsınız.
Yeni bir tarayıcı penceresinde, uygulamanızın Genel Bakış sayfasındaki FTP ana bilgisayar adı veya FTPS ana bilgisayar adı altında gösterilen URL'ye gidin.
Daha önce oluşturduğunuz FTP kimlik bilgilerini (kullanıcı adı için uygulama adı ön eki dahil) kullanarak oturum açın.
Tarayıcı, uygulamanın kök klasörünü gösterir.
LogFiles klasörünü açın.
W3SVC adlı klasörü ve bir sayısal değeri açın.
Klasör, başarısız istek izlemeyi etkinleştirdikten sonra günlüğe kaydedilen hataların XML dosyalarını ve bir tarayıcının XML'yi biçimlendirmek için kullanabileceği bir XSL dosyasını içerir.
İzleme bilgilerini görmek istediğiniz başarısız isteğin XML dosyasına tıklayın.
Aşağıdaki çizimde örnek bir hata için izleme bilgilerinin bir bölümü gösterilmektedir.
Sonraki Adımlar
Visual Studio'nun bir App Service uygulaması tarafından oluşturulan günlükleri görüntülemeyi nasıl kolaylaştırdığı gördünüz. Aşağıdaki bölümlerde, ilgili konularla ilgili daha fazla kaynağın bağlantıları sağlanır:
- App Service sorunlarını giderme
- Visual Studio'da Hata Ayıklama
- Azure'da uzaktan hata ayıklama
- ASP.NET uygulamalarında izleme
- Web sunucusu günlüklerini çözümleme
- Başarısız istek izleme günlüklerini çözümleme
- Cloud Services'da Hata Ayıklama
App Service sorunlarını giderme
Azure Uygulaması Hizmeti'ndeki uygulama sorunlarını giderme hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:
- Uygulamaları izleme
- Visual Studio 2013 ile Azure Uygulaması Hizmetinde Bellek Sızıntılarını Araştırma. Yönetilen bellek sorunlarını analiz etmek için Visual Studio özellikleri hakkında Microsoft ALM blog gönderisi.
- Azure Uygulaması Bilmeniz gereken Çevrimiçi Hizmet araçları. Amit Apple tarafından blog gönderisi.
Belirli bir sorun giderme sorusuyla ilgili yardım için aşağıdaki forumlardan birinde bir yazışma başlatın:
- ASP.NET sitesindeki Azure forumu.
- Microsoft Soru-Cevap'ta Azure forumu.
- StackOverflow.com.
Visual Studio'da Hata Ayıklama
Visual Studio'da hata ayıklama modunu kullanma hakkında daha fazla bilgi için bkz. Visual Studio'da Hata Ayıklama ve Visual Studio 2010 ile Hata Ayıklama İpuçları.
Azure'da uzaktan hata ayıklama
App Service uygulamaları ve Web İşleri için uzaktan hata ayıklama hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:
- Uzaktan Hata Ayıklama Azure Uygulaması Hizmeti'ne giriş.
- Uzaktan Hata Ayıklama Azure Uygulaması Hizmeti bölüm 2'ye giriş - Uzaktan hata ayıklama
- Azure Uygulaması Hizmeti 3. Bölümde Uzaktan Hata Ayıklamaya Giriş - Çok Örnekli ortam ve GIT
- Web İşleri Hata Ayıklama (video)
Uygulamanız bir Azure Web API'sini veya Mobile Services arka ucunu kullanıyorsa ve bunun hatalarını ayıklamanız gerekiyorsa bkz . Visual Studio'da .NET Arka Ucunda Hata Ayıklama.
ASP.NET uygulamalarında izleme
İnternet'te ASP.NET izlemeye yönelik kapsamlı ve güncel giriş yoktur. Yapabileceğiniz en iyi şey, MVC henüz mevcut olmadığından Web Forms için yazılmış eski tanıtım malzemeleriyle çalışmaya başlamak ve bunu belirli sorunlara odaklanan daha yeni blog gönderileriyle desteklemektir. Başlamak için bazı iyi yerler aşağıdaki kaynaklardır:
İzleme ve Telemetri (Azure ile Gerçek Dünya Bulut Uygulamaları Oluşturma).
Azure bulut uygulamalarında izleme önerileri içeren e-kitap bölümü.ASP.NET İzleme
Eski ama yine de konuya temel bir giriş için iyi bir kaynaktır.İzleme Dinleyicileri
İzleme dinleyicileri hakkında bilgiler, ancak WebPageTraceListener'dan bahsetmez.İzlenecek yol: ASP.NET İzlemeyi System.Diagnostics İzleme ile Tümleştirme
Bu makale de eskidir, ancak giriş makalesinin kapsamadığı bazı ek bilgileri içerir.ASP.NET MVC Razor Görünümlerinde İzleme
Razor görünümlerinde izlemenin yanı sıra, gönderide bir MVC uygulamasındaki tüm işlenmeyen özel durumları günlüğe kaydetmek için bir hata filtresinin nasıl oluşturulacağı da açıklanır. Web Forms uygulamasında işlenmeyen tüm özel durumları günlüğe kaydetme hakkında bilgi için MSDN'de Hata İşleyicileri için Tam Örnek'teki Global.asax örneğine bakın. MVC veya Web Forms'da, belirli özel durumları günlüğe kaydetmek ancak varsayılan çerçeve işlemenin bunlar için etkili olmasına izin vermek istiyorsanız, aşağıdaki örnekte olduğu gibi yakalayıp yeniden oluşturabilirsiniz:try { // Your code that might cause an exception to be thrown. } catch (Exception ex) { Trace.TraceError("Exception: " + ex.ToString()); throw; }
Azure Komut Satırından Tanılama İzleme Günlüğü Akışı (artı Glimpse!)
Bu öğreticinin Visual Studio'da nasıl yapılacağını gösterdiği işlemi yapmak için komut satırını kullanma. Glimpse , ASP.NET uygulamalarında hata ayıklamaya yönelik bir araçtır.David Ebbo ve Web Apps'ten Akış Günlükleri ile Web Apps Günlüklerini ve Tanılamayı Kullanma - David Ebbo ile
Scott Hanselman ve David Ebbo'nun videoları.
Hata günlüğü için, kendi izleme kodunuzu yazmanın bir alternatifi, ELMAH gibi bir açık kaynak günlük çerçevesi kullanmaktır. Daha fazla bilgi için Scott Hanselman'ın ELMAH hakkındaki blog gönderilerine bakın.
Ayrıca Azure'dan akış günlüklerini almak için ASP.NET veya System.Diagnostics
izleme kullanmanız gerekmez. App Service uygulaması akış günlüğü hizmeti LogFiles klasöründe bulduğu tüm .txt, .html veya .log dosyalarının akışını sağlar. Bu nedenle, uygulamanın dosya sistemine yazan kendi günlük sisteminizi oluşturabilirsiniz ve dosyanız otomatik olarak akışa aktarılır ve indirilir. Tek yapmanız gereken, d:\home\logfiles klasöründe dosya oluşturan uygulama kodu yazmaktır.
Web sunucusu günlüklerini çözümleme
Web sunucusu günlüklerini çözümleme hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:
- LogParser
Web sunucusu günlüklerinde (.log dosyaları) verileri görüntülemeye yönelik bir araç. - LogParser kullanarak IIS Performans Sorunlarını veya Uygulama Hatalarını Giderme
Web sunucusu günlüklerini çözümlemek için kullanabileceğiniz Günlük Ayrıştırıcısı aracına giriş. - Robert McMurray tarafından LogParser kullanımıyla ilgili blog gönderileri
- IIS 7.0, IIS 7.5 ve IIS 8.0'daki HTTP durum kodu
Başarısız istek izleme günlüklerini çözümleme
Microsoft TechNet web sitesi, bu günlüklerin nasıl kullanılacağını anlamak için yararlı olabilecek Başarısız İstek İzlemeyi Kullanma bölümünü içerir. Ancak, bu belge temel olarak IIS'de başarısız istek izlemeyi yapılandırmaya odaklanır ve bunu Azure Uygulaması Hizmetinde yapamazsınız.