IIS 7'de izlemeyi kullanarak başarısız isteklerin sorunlarını giderme
Şunlar için geçerlidir: Internet Information Services 7.0
Not
Bu makale IIS 7.0 için geçerlidir. Daha yeni sürümler için bkz. IIS 8.5'te izlemeyi kullanarak başarısız istekleri giderme.
İstek tabanlı izleme hem tek başına IIS sunucularında hem de Azure web uygulamalarında kullanılabilir ve karşılaştığınız sorunu yeniden oluşturabiliyorsanız isteklerinizde tam olarak neler olduğunu ve neden olduğunu saptamak için bir yol sağlar. Bazı isteklerde düşük performans veya diğer isteklerde kimlik doğrulamasıyla ilgili hatalar ya da ASP veya ASP.NET sunucu 500 hatası gibi sorunların giderilmesi genellikle zor olabilir; sorun oluştuğunda sorunun izini yakalamadıysanız. Bu makalede IIS Sunucusunda Başarısız İstek İzleme açıklanır. Bunu Azure web uygulamalarıyla yapma hakkında bilgi için bkz. Visual Studio kullanarak Azure App Service'da uygulama sorunlarını giderme.
Başarısız İstek İzleme, bir isteğin izleme olaylarını arabelleğe almak ve yalnızca istek başarısız olursa diske boşaltmak için tasarlanmıştır ve burada "failure" tanımını sağlarsınız. Neden 404.2 hata iletileri aldığınızı veya isteğin yanıt vermemeye başladığını öğrenmek istiyorsanız Başarısız İstek İzleme'yi kullanın.
Bu makalede gösterilen görevler şunlardır:
- Başarısız İstek İzleme modülünü etkinleştirme.
- Başarısız İstek İzleme günlük dosyası semantiğini yapılandırma.
- Hata tanımları ve izleyebileceğiniz alanlar da dahil olmak üzere başarısız istek izlemelerinin tutulacak URL'sini tanımlama.
- Hata koşulu oluşturuluyor ve sonuçta elde edilen izleme görüntüleniyor.
Önkoşullar
IIS yükleme
Bu makaledeki görevleri yerine getirebilmeniz için önce IIS 7 veya üzerini yüklemeniz gerekir. IIS'nin http://localhost/
yüklü olup olmadığını görmek için adresine gidin. IIS yüklü değilse yükleme yönergeleri için bkz . Windows Server 2008'de IIS yükleme . IIS'yi yüklerken aşağıdaki özellikleri de yüklediğinizden emin olun:
- ASP.NET ( World Wide Web Services - Uygulama Geliştirme Özellikleri - ASP.NET altında)
- İzleme ( World Wide Web Hizmetleri - Sistem Durumu ve Tanılama - İzleme altında)
Yönetici olarak oturum açın
Oturum açmak için kullandığınız hesabın yönetici hesabı olduğundan veya Yöneticiler grubunda olduğundan emin olun.
Not
Yöneticiler grubunda olmak size varsayılan olarak tam yönetici kullanıcı hakları vermez. Uygulamaları yönetici olarak çalıştırmanız gerekir. Bunu uygulama simgesine sağ tıklayıp Yönetici olarak çalıştır'ı seçerek yapabilirsiniz.
Yedek oluşturma
Aşağıdaki bölümlerde yer alan görevleri gerçekleştirmeden önce yapılandırmanın yedeğini oluşturmanız gerekir.
Yapılandırmanın yedeğini almak için şu adımları izleyin:
Tüm Programlar Donatılarını Başlat'ı>> seçin.
Komut İstemi'ne sağ tıklayın ve yönetici olarak çalıştır'ı seçin.
Komut isteminde aşağıdaki komutu çalıştırın:
%windir%\system32\inetsrv\appcmd add backup cleanInstall
Örnek içerik oluşturma
%systemdrive%\inetpub\wwwroot
'a gidin.İçeriği güvenli bir konuma taşıyın (mevcut içeriği geri yüklemek istemeniz durumunda) veya silin.
Boş bir dosya oluşturun ve test.asp olarak adlandırlayın.
Komut isteminde \inetpub\wwwrootiçindeki test.asp dosyasına gidin.
test.asp dosyasına aşağıdaki içeriği yapıştırın:
<h2>Failed Request Tracing Lab</h2><br> <br>Today's date is <% response.write(Date()) %>
ASP'yi devre dışı bırakma
Bu görev için ASP devre dışı bırakılmalıdır. ASP yalnızca örnek olarak ve bu makaledeki görevlerin amaçları doğrultusunda devre dışı bırakılmıştır.
ASP'yi devre dışı bırakmak için
Internet Information Services (IIS) Yöneticisi'ne gidin.
ISAPI ve CGI Kısıtlamaları'ne çift tıklayın.
Etkin Sunucu Sayfaları'nu seçin. Eylemler bölmesinde, ASP'yi devre dışı bırakmak için Reddet'i seçin.
Başarısız İstek İzlemeyi Etkinleştirme
Başarısız İstek İzleme'yi etkinleştirdikten sonra günlük dosyalarının nerede bulunacağını yapılandırmanız gerekir. Bu görevde, Varsayılan Web Sitesi için Başarısız İstek İzleme'yi etkinleştirecek ve günlük dosyalarının nereye yerleştirileceğini belirteceksiniz. Ardından hata günlüklerinin oluşturulacağı hatayı yapılandıracaksınız.
1. Adım: Site için Başarısız İstek İzlemeyi Etkinleştirme ve Günlük Dosyası Dizinini Yapılandırma
Yönetici kullanıcı haklarıyla bir komut istemi açın ve %systemdrive%\windows\system32\inetsrv adresine gidin.
KOMUTUNU çalıştırarak
inetmgr
IIS Yöneticisi'nin açılmasını sağlayın.Connections bölmesinde makine adını genişletin, Siteler'i genişletin ve ardından Varsayılan Web Sitesi'ni seçin.
Eylemler bölmesindeki Yapılandır'ın altında Başarısız İstek İzleme'yi seçin.
Web Sitesi Başarısız İstek İzleme Ayarlarını Düzenle iletişim kutusunda aşağıdakileri yapılandırın:
- Etkinleştir onay kutusunu seçin.
- Diğer ayarlar için varsayılan değerleri koruyun.
Tamam'ı seçin.
Başarısız İstek İzleme günlüğü artık Varsayılan Web Sitesi için etkinleştirildi. Yapılandırmanın aşağıdaki gibi göründüğünü onaylamak için %windir%\system32\inetsrv\config\applicationHost.config dosyasını denetleyin:
<system.applicationHost>
<sites>
<!-- site & app defaults -->
<site name="Default Web Site" id="1">
<!-- other site configuration -->
<traceFailedRequestsLogging enabled="true" />
</site>
</sites>
</system.applicationHost>
2. Adım: Hata tanımlarınızı yapılandırma
Bu adımda, url'nizin hata tanımlarını yapılandıracak ve izlemeniz gereken alanlar da dahil olacak. Henüz etkinleştirilmemiş uzantılara yönelik istekler için IIS tarafından döndürülen 404.2 sorunlarını gidereceksiniz. Bu, hangi uzantıları etkinleştirmeniz gerektiğini belirlemenize yardımcı olur.
Yönetici kullanıcı haklarıyla bir komut istemi açın ve %systemdrive%\windows\system32\inetsrv adresine gidin.
KOMUTUNU çalıştırarak
inetmgr
IIS Yöneticisi'nin açılmasını sağlayın.Connections bölmesinde makine adını genişletin, Siteler'i genişletin ve ardından Varsayılan Web Sitesi'ni seçin.
Başarısız İstek İzleme Kuralları'ne çift tıklayın.
Bitir'iseçin.
Eylemler bölmesinde Ekle'yi seçin.
Başarısız İstek İzleme Kuralı Ekle sihirbazında, İzlemek için İçerik Belirt sayfasında Tüm içerik (*) öğesini seçin. İleri'yi seçin.
İzleme Koşullarını Tanımla sayfasında Durum kodları onay kutusunu seçin ve iz eklenecek durum kodu olarak 404.2 girin.
İleri'yi seçin.
İzleme Sağlayıcılarını Seç sayfasındaki Sağlayıcılar'ın altında WWW Sunucusu onay kutusunu seçin. Alanlar'ın altında Güvenlik onay kutusunu seçin ve diğer tüm onay kutularını temizleyin.
Oluşturduğunuz sorun, bir güvenlik hatası izleme olayının oluşturulmasına neden oluyor. Genel olarak, kimlik doğrulama ve yetkilendirme (ISAPI kısıtlama listesi sorunları dahil) sorunları, izleme için WWW Sunucusu - Güvenlik alanı yapılandırması kullanılarak tanılanabilir. Ancak FREB.xsl stil sayfası hataları ve uyarıları vurgulamanıza yardımcı olduğundan, tüm alanlarda ve sağlayıcılarda tüm olayları günlüğe kaydetmek için varsayılan yapılandırmayı kullanmaya devam edebilirsiniz. Ayrıntı'nın altında Ayrıntılı'yı seçin.
Bitir'iseçin. Varsayılan Web Sitesi için aşağıdaki tanımı görmeniz gerekir:
IIS Yöneticisi, yapılandırmayı bir <location>
etiket kullanarak dosyaya %windir%\system32\inetsrv\config\applicationHost.config
yazar. Yapılandırma aşağıdaki gibi görünmelidir:
<location path="Default Web Site">
<system.webServer>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="WWW Server" areas="Security" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="404.2" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
</location>
Hata isteği günlük dosyasını test edin ve görüntüleyin
Bu görevde, başarısız bir istek oluşturacak ve sonuçta elde edilen izleme günlüğünü görüntüleyebileceksiniz. IIS'yi, 404.2 HTTP yanıt koduyla başarısız olan isteklerin izleme günlüklerini http://localhost/*.asp
yakalayacak şekilde zaten yapılandırmıştınız. Şimdi çalıştığını doğrulayın.
1. Adım: Hata ve hata isteği günlük dosyası oluşturma
Yeni bir Internet Explorer penceresi açın.
Şu adresi girin:
http://localhost/test.asp
."HTTP Hatası 404.2 - Bulunamadı" hatası alıyorsunuz.
2. Adım: Hata isteği günlük dosyasını görüntüleme
Başarısız bir istek oluşturduğunuza göre, yönetici kullanıcı haklarıyla bir komut istemi açın ve %systemdrive%\inetpub\logs\FailedReqLogFiles\W3SVC1 adresine gidin.
Dizinden bir Internet Explorer penceresi başlatmak için start komutunu çalıştırın.
Burada birkaç şeye dikkat edin: IIS başarısız istek günlük dosyasını yazdığında, başarısız istek başına bir dosya yazar. Dizin başına bir freb.xsl stil sayfası da yazılır. Bu, sonuçta elde edilen hata isteği günlük dosyalarını (örneğin, bu örnektekifr000001.xml ) görüntülediğinizde yardımcı olur.
404.2 hatasının günlük dosyasına sağ tıklayın veInternet Explorerile> Aç'ı seçin. Başarısız İstek İzleme dosyasını ilk kez açıyorsanız, Internet Explorer'ın Gelişmiş Güvenlik Yapılandırması varsayılan olarak etkinleştirildiğinden, güvenilen siteler listesine about:internet eklemeniz gerekir. Öyleyse, aşağıdakileri görürsünüz:
Internet Explorer iletişim kutusunda Ekle... öğesini seçerek güvenilen siteler listesine about:internet ekleyin. Bu, XSL'nin çalışmasını sağlar. şunu ekledikten sonra şunları görürsünüz: güvenilen siteler listesine about:internet :
Başarısız isteğin özeti en üstte günlüğe kaydedilir ve Hatalar & Uyarılar tablosu ÖNEM DerecesindeUYARI, HATA veya KRİtİk HATA olan tüm olayları tanımlar. Bu örnekte UYARI önem düzeyi ISAPI KISITLAMASINDAN kaynaklanır. Yüklemeye çalıştığınız görüntü %windir%\system32\inetsrv\asp.dll.
Ham XML dosyasını bir metin düzenleyicisi kullanarak doğrudan açın ve her olayın içeriğine bakın.
Özet
İki görevi tamamladınız: IIS'nin 404.2 durum koduyla döndürdüğü isteklerin izlemelerini yakalamak için Başarısız İstek İzleme'yi yapılandırdı ve IIS'nin isteğinizin izlemesini yakaladığını doğruladınız. ayrıca ,freb.xml günlük dosyasının, isteklerin 404.2 dönüş kodu olmadığından, yaptığınız istekler için başka istek içermediğini de doğruladınız. Hata günlük dosyasına danıştığınızda, hatanın nedeninin uzantının bu istek için devre dışı bırakılması olduğunu belirlediniz. HTML olmayan diğer sayfaları (.gif veya .jpg dosyaları gibi) deneyebilir ve günlük dosyasının bu izlemeleri EKLEMEDİĞİne dikkat edin. Ayrıca bunu kolayca 404 olarak değiştirebilir veya isteğin 30 saniyeden uzun sürmesi durumunda failureDefinitions içinde timeTaken alanını ayarlayarak hatayı yakalayabilirsiniz.
Yedeklemenizi geri yükleme
Bu makaledeki görevleri tamamladığınıza göre, yapılandırmanın yedeğini geri yükleyebilirsiniz. Yönetici kullanıcı haklarıyla aşağıdaki komutu çalıştırın:
%windir%\system32\inetsrv\appcmd restore backup cleanInstall