Visual Studio kullanarak Azure Uygulaması Hizmeti'nde uygulama sorunlarını giderme

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.

  1. 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ği'neBağlan'yi 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.

    Dekont

    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.

  2. Sunucu Gezgini'nde Azure'ı ve App Service'i genişletin.

  3. 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.

    View Settings in Server Explorer

    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.

    Azure Web App window

    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ğlan Ion Dizeleri kutuları hakkında bilgi için bkz. Azure Uygulaması Hizmeti: Uygulama Dizeleri ve Bağlan ion 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 RemoteOnlyolarak 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ı:

Screenshot showing a Server Error in '/' Application error in a web browser.

Bir hata oluştu:

Screenshot showing an example of a generic error occurring in a web browser.

Web sitesi sayfayı görüntüleyemiyor

Screenshot showing a message that reads **The website cannot display the page error in a web browser**.

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.

  1. 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.

  2. Dosyalar düğümünü genişletin ve Web.config dosyasına çift tıklayın.

    Open Web.config

    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.

  3. öğesine aşağıdaki satırı system.web ekleyin:

    <customErrors mode="Off"></customErrors>

    Edit Web.config

  4. 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:

    Detailed error message

    (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.

  1. Azure Uygulaması Hizmetinde ASP.NET uygulaması oluşturma bölümünde oluşturduğunuz web projesini açın.

  2. Controllers\HomeController.cs dosyasını açın.

  3. 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();
    }
    
  4. Satırda ViewBag.Message bir kesme noktası ayarlayın.

  5. Çözüm Gezgini'da projeye sağ tıklayın ve Yayımla'ya tıklayın.

  6. 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.

  7. Yayımla iletişim kutusunda Ayarlar sekmesine tıklayın, yapılandırmayı Hata Ayıklama olarak değiştirinve kaydet'e tıklayın.

    Publish in debug mode

  8. 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.

  9. Sunucu Gezgini'nde, uygulamanıza sağ tıklayın ve ardından Hata Ayıklayıcı Ekle'ye tıklayın.

    Screenshot of the Server Explorer window showing an app selected and then clicking Attach Debugger.

    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.

    Dekont

    Hata ayıklayıcıyı başlatırken sorun yaşıyorsanız, bunu Sunucu Gezgini yerine Bulut Gezgini'nikullanarak yapmayı deneyin.

  10. 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.

  11. Zaman değerini görmek için değişkenin üzerine currentTime gelin.

    View variable in debug mode running in Azure

    Gördüğünüz saat, yerel bilgisayarınızdan farklı bir saat diliminde olabilecek Azure sunucu saatidir.

  12. Değişken için "Şimdi Azure'da currentTime çalıştırılıyor" gibi yeni bir değer girin.

  13. Ç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.

    About page with new value

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.

  1. Azure Web İşleri SDK'sını Kullanmaya Başlama bölümünde oluşturduğunuz web projesini açın.

  2. ContosoAdsWebJob projesinde Functions.cs dosyasını açın.

  3. yöntemindeki ilk deyimde GenerateThumbnail bir kesme noktası ayarlayın.

    Set breakpoint

  4. Çözüm Gezgini'da web projesine (Web İşi projesine değil) sağ tıklayın ve Yayımla'ya tıklayın.

  5. 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.

  6. 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.

  7. 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.>

  8. Hata Ayıklayıcısı Ekle'ye tıklayın.

    Screenshot of Server Explorer showing ContosoAdsWebJob selected in the drop-down menu and Attach Debugger selected.

    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.

  9. 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.

  10. 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.

    blobInfo object in debugger

  11. Çalışmaya devam etmek için F5 tuşuna basın.

    yöntemi küçük GenerateThumbnail resim oluşturmayı tamamlar.

  12. Tarayıcıda Dizin sayfasını yenilediğinizde küçük resmi görürsünüz.

  13. Visual Studio'da hata ayıklamayı durdurmak için SHIFT+F5 tuşlarına basın.

  14. Sunucu Gezgini'nde ContosoAdsWebJob düğümüne sağ tıklayın ve Panoyu Görüntüle'ye tıklayın.

  15. Azure kimlik bilgilerinizle oturum açın ve web işinizin sayfasına gitmek için Web İşi adına tıklayın.

    Click ContosoAdsWebJob

    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.)

  16. İşlev yürütme hakkındaki ayrıntıları görmek için işlev adına tıklayın.

    Function details

İş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 emin debug 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

  1. Controllers\HomeController.cs dosyasını açın ve deyimlerini ve deyimini eklemek Trace için System.Diagnostics, Aboutve usingContact 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();
    }        
    
  2. Dosyanın en üstüne bir using System.Diagnostics; deyim ekleyin.

İzleme çıkışını yerel olarak görüntüleme

  1. 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 .

    Tracing in Debug window

    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.

  2. 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.axdgörüntülemenizi sağlar.

  1. 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" />
    
  2. Uygulamayı çalıştırmak için CTRL+F5'e basın.

  3. Tarayıcı penceresinin adres çubuğuna URL'ye trace.axd ekleyin ve enter tuşuna basın (URL şuna benzerhttp://localhost:53370/trace.axd).

  4. Uygulama İzleme sayfasında, ilk satırda (BrowserLink satırına değil) Ayrıntıları Görüntüle'ye tıklayın.

    Screenshot of the Application Trace page in a web browser showing View Details selected on the first line.

    İ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.

    Screenshot of the Request Details page in a web browser showing a message highlighted in the Trace Information section.

    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

  1. Çözüm Gezgini web projesine sağ tıklayın ve Yayımla'ya tıklayın.

  2. 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ğlan ion sekmesinde Hedef URL'yi temizlemediğiniz varsayılır).

  3. Sunucu Gezgini'nde uygulamanıza sağ tıklayın ve Akış Günlüklerini Görüntüle'yi seçin.

    Screenshot of Server Explorer after right-clicking your app, with View Streaming Logs selected in a new window.

    Çı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.

    Screenshot of the Output window showing an example of a connection to a log-streaming service with notification lines.

  4. 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.

    Error trace in Output window

    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:

    Application Logging off

    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.

  5. Sunucu Gezgini'nde uygulamaya sağ tıklayın ve daha önce yaptığınız gibi Ayarlar görüntüle'ye tıklayın.

  6. Uygulama Günlüğünü (Dosya Sistemi) Ayrıntılı olarak değiştirin ve Kaydet'e tıklayın.

    Setting trace level to Verbose

  7. 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.

    Verbose trace output

    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:

Screenshot showing the buttons and text box of the Microsoft Azure Logs tab in the Output window.

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.

  1. 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.

    Enable web server logging

  2. Çıkış Penceresinde hangi Microsoft Azure günlüklerinin izleneceğini belirtin düğmesine tıklayın.

    Specify which Azure logs to monitor

  3. Microsoft Azure Günlük Seçenekleri iletişim kutusunda Web sunucusu günlükleri'ni seçin ve tamam'a tıklayın.

    Monitor web server logs

  4. 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.

    Web server logs in Output window

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.

  1. 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.

    Enable detailed error messages

  2. Çıkış Penceresinde hangi Microsoft Azure günlüklerinin izleneceğini belirtin düğmesine tıklayın.

  3. Microsoft Azure Günlük Seçenekleri iletişim kutusunda Tüm günlükler'e ve ardından Tamam'a tıklayın.

    Monitor all logs

  4. 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.

    Detailed error log - Output window

    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:

    Detailed error log - browser window

Dosya sistemi günlüklerini indirme

Çıkış penceresinde izleyebileceğiniz tüm günlükler .zip dosyası olarak da indirilebilir.

  1. Çıkış penceresinde Akış Günlüklerini İndir'e tıklayın.

    Screenshot of the Output window showing the Download Streaming Logs button highlighted.

    Dosya Gezginiİndirilen dosyanın seçili olduğu İndirilenler klasörü.

    Screenshot of the Downloads folder in File Explorer with a downloaded file selected.

  2. .zip dosyasını ayıkladığınızda aşağıdaki klasör yapısını görürsünüz:

    Screenshot of the .zip file folder structure after the file has been extracted.

    • 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 dosyalarında 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.

  1. 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.

    Enable failed request tracing

  2. 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.

  3. Visual Studio'da, Azure Web App penceresinin Yapılandırma sekmesinde Yönetim Portalı'nda Aç'a tıklayın.

  4. 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.

    New FTP user name and password

    Dekont

    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.

  5. 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.

  6. 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.

  7. LogFiles klasörünü açın.

    Open LogFiles folder

  8. W3SVC adlı klasörü ve bir sayısal değeri açın.

    Open W3SVC folder

    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.

    W3SVC folder

  9. İ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.

    Failed request tracing in browser

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:

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:

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:

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:

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.