ASP sayfaları oluşturken çoğu kez hatalı scripting veya ASP objelerinden dolayı hatalar alıyoruz. Basit bir tırnak yada apostrof yanlışlığı bile bu durma yol açabilmektedir. IIS üstünde çalışmak Geliştiriciye PWS üstünde çalışmakdan daha yaralı olabilmekte bu konuda. Şöyle ki, bir hata oluştuğunda IIS'in verdiği error descriptionları PWS nin kine göre daha detaylı oluyor.
ASP sayfaları oluşturken meydana gelebilecek hataları daha detaylı olarak incelebilmek ve kontrol altında tutabilmek için Error loging olayına başvurabiliriz.
Malumunuz "On Error Resume next" olayı bize bir scriptin ASP sayfasında çalışırken hatalı olması durumunda hatalı satır veya fonksiyonun bir alt satırndan devam ederek çalışmasını sağlar. Böylece script kitlenmez. Fakat tabii bu durumda Scriptin içinde tüm fonksiyonlar işlevini yerine getirmez. Bu "On error rersume next" olayı ile birlikte kullanabileceğimiz olay Error loging dir. WriteToLogFile adlı fonksiyon ile bunu sağlayabiliriz.
Diyelim elimizde içine değerler aktarılacak bir "deneme.txt" dosyası olsun. Bu dosya kendi local makinamızda C:\ sürücünün altında kayıtlıdır. Dosyanın açılması yada kapanması yukarıda adı geçen "WriteToLogFile" adlı fonksiyon ile yapılır. String olarak yazdırır ve başarılı olması halinde true aksi takdirde false döndürür. Örnek vermek gerekirse:
<Script runat = Server Language = "VBScript">
Function WriteToLogFile
On Error Resume Next 'Hata ile karşılaşılınca devam etsin
WriteToLogFile = False
Set NesneFSO = CreateObject("Scripting.FileSystemObject")'Dosyayı yaratmak için anahtar sözcük -FileSystemObject-
Set NesneLog = NesneFSO.OpenTextFile(C:\ixir.txt,8) 'Log dosyasını belirliyoruz.
NesneLog.WriteLine 'Yazma işlemi başlatılıyor
NesneLog.Close 'Bağlantı kapatılıyor.
WriteToLogFile = True
End Function
***********
Yukarıdaki örnekde gördüğünüz gibi herhangi bir sebepden dolayı doğacak hatalar böylece ixir.txt adlı dosyamıza kaydolacaktır. Local makinemizde bunu direk dizinden görerek, diğer bir sunucuda ise dilediğimiz bir yönetim sayfasına include yöntemi ile dahil ederek görebiliriz. Tabii unutulmaması gereken husus, Sunucuda ilgili klasörde yazma hakkımızın bulunması gerekir. Yoksa TextStream Nesnesinden faydalanarak yapacağınız bu işlem gerçekleşmeyecektir, yani deneme.txt dosyası hiç oluşmayacak yada içine yazma esnasında sunucundan bun işleme hakkınız olmadığını belirten bir hata alacaksınız.
ASP sayfaları oluşturken meydana gelebilecek hataları daha detaylı olarak incelebilmek ve kontrol altında tutabilmek için Error loging olayına başvurabiliriz.
Malumunuz "On Error Resume next" olayı bize bir scriptin ASP sayfasında çalışırken hatalı olması durumunda hatalı satır veya fonksiyonun bir alt satırndan devam ederek çalışmasını sağlar. Böylece script kitlenmez. Fakat tabii bu durumda Scriptin içinde tüm fonksiyonlar işlevini yerine getirmez. Bu "On error rersume next" olayı ile birlikte kullanabileceğimiz olay Error loging dir. WriteToLogFile adlı fonksiyon ile bunu sağlayabiliriz.
Diyelim elimizde içine değerler aktarılacak bir "deneme.txt" dosyası olsun. Bu dosya kendi local makinamızda C:\ sürücünün altında kayıtlıdır. Dosyanın açılması yada kapanması yukarıda adı geçen "WriteToLogFile" adlı fonksiyon ile yapılır. String olarak yazdırır ve başarılı olması halinde true aksi takdirde false döndürür. Örnek vermek gerekirse:
<Script runat = Server Language = "VBScript">
Function WriteToLogFile
On Error Resume Next 'Hata ile karşılaşılınca devam etsin
WriteToLogFile = False
Set NesneFSO = CreateObject("Scripting.FileSystemObject")'Dosyayı yaratmak için anahtar sözcük -FileSystemObject-
Set NesneLog = NesneFSO.OpenTextFile(C:\ixir.txt,8) 'Log dosyasını belirliyoruz.
NesneLog.WriteLine 'Yazma işlemi başlatılıyor
NesneLog.Close 'Bağlantı kapatılıyor.
WriteToLogFile = True
End Function
***********
Yukarıdaki örnekde gördüğünüz gibi herhangi bir sebepden dolayı doğacak hatalar böylece ixir.txt adlı dosyamıza kaydolacaktır. Local makinemizde bunu direk dizinden görerek, diğer bir sunucuda ise dilediğimiz bir yönetim sayfasına include yöntemi ile dahil ederek görebiliriz. Tabii unutulmaması gereken husus, Sunucuda ilgili klasörde yazma hakkımızın bulunması gerekir. Yoksa TextStream Nesnesinden faydalanarak yapacağınız bu işlem gerçekleşmeyecektir, yani deneme.txt dosyası hiç oluşmayacak yada içine yazma esnasında sunucundan bun işleme hakkınız olmadığını belirten bir hata alacaksınız.