Makale 15: Remoting Uygulamalarında Hata Ayıklamak

Remoting server’ı çoğu durumda üzerinde çalıştığınız bilgisayar üzerinde bulunmayacaktır. Bunun yerine daha güçlü ve stabil server’lar üzerinde çalışmaları tercih edilecektir. Bu da büyük bir ihtimalle server üzerinde Visual Studio’yu install edemeyeceğiniz anlamına gelmektedir.

.NET uygulamalarının remote debugging yöntemi ile debug edilebilmesi için uygulamanın çalıştığı bilgisayar üzerinde Remote Debugging Components olarak adlandırılan add-on’ların kurulu olması gerekmektedir. Bu add-on’lar Visual Studio’nun kurulu olmadığı bilgisayarlar üzerinde de kurulabilir. Bunun için Visual Studio DVD’si içerisindeki \vs\Remote Debugger\x86 klasöründe bulunan exe dosyasının çalıştırılması gerekmektedir.

Remoting server’ının Console Application, Windows Application ve ya IIS üzerinde olması durumunda debugging işlemleri normalde yapıldığı şekilde ve ya process Visual Studio’ya attach edilerek yapılabilir. Windows service’leri ise bu noktada yalnızca attachment yapılarak debug işlemlerinin yapılabilmesine olanak vermektedir.

Farklı bir bilgisayar üzerinde çalışan Remoting server’ının debug edilebilmesi işin Windows service’inin çalıştığı bilgisayar üzerinde sırasıyla şu işlemler takip edilmelidir:

1.     Start > Microsoft Visual Studio 2005 > Visual Studio Tools menüsü içerisindeki “Visual Studio 2005 Remote Debugger Configuration Wizard” shortcut’ına tıklayın.

2.     Açılan ekranda Next butonuna tıklayın.

3.     Sonraki ekranda Remote debugger’ın servis olarak değil sadece çalıştırmanız durumunda çalışması için Run the “Visual Studio 2005 Remote Debugger” service seçeneğini unchecked olarak bırakın.

4.     Next butonuna tıklayın.

5.     Allow only computers on the local network (subnet) to connect to the remote debugger seçeneğini işaretleyin.

6.     Next butonuna tıklayın.

7.     Configuration işlemi tamamlandı.

8.     Finish butonuna tıklayın.

9.     Start > Microsoft Visual Studio 2005 > Visual Studio Tools menüsü içerisindeki “Visual Studio 2005 Remote Debugger” shortcut’ına tıklayın.

10.  Visual Studio 2005 Remote Debugger çalışır.

Yukarıdaki işlemler tamamlandıktan sonra Remoting server’ının bulunduğu bilgisayar uzaktan bağlanacak yetkili bilgisayarların debugging işlemi yapmasına izin verecektir. Debug işlemi ise şu şekilde yapılır:

1.     Visual Studio’yu çalıştırın.

2.     Windows service’inin source code’larının bulunduğu project’i açın.

3.     CTRL + ALT + P tuş kombinasyonunu ve ya Debug > Attach to Process… seçeneğine tıklayarak “Attach to Process” ekranını açın.

4.     Qualifier seçeneğini Remoting server’ın üzerinde çalıştığı bilgisayar olarak seçin.

5.     Refresh butonuna tıklayın.

6.     Available processes listesinde bulunan uygulamalar arasından Windows service’inizi seçin. Örneğin geliştirmiş olduğumuz MyFirstRemotingService uygulaması için process ismi MyFirstRemotingService.exe olur.

7.     Attach butonuna tıklayın.

8.     MyRemotableType.cs dosyası içerisinde debug etmek istediğiniz satırlara Breakpoint’ler ekleyin.

9.     Yeni bir MyFirstRemotingClient.exe uygulaması çalıştırın.

10.  Visual Studio Breakpoint’inizin bulunduğu satıra geldiğinde debug ekranına geçiş yapar.

UYARI

Debug işlemini yapacak olan client’ın üzerinde logon olmuş user account’unun Remoting server’ının çalıştığı bilgisayar üzerinde bulunan “Debugger Users” user grubunun içerisinde tanımlanmış olması gerekmektedir. Aksi taktirde authorization ile ilgili sorunlarla karşılaşabilirsiniz.

Görüldüğü üzere .NET kendi bilgisayarımız üzerinde bulunmayan .NET uygulamalarını debug edebilmek için gerekli olan tüm esnekliğe sahip. Remoting server’ının kapatılmamasını gerektiren durumlarda bu olanak son derece faydalıdır.

Özet

  • Remoting server’ları IIS, Windows Application, Windows Service (NT Service) ve Console Application tipindeki uygulamalar kullanılarak host edilebilir.
  • IIS üzerinde host edilen Remoting server’ları yalnızca HTTP protokolünden faydalanabilir.
  • Remoting server’ları uzak bilgisayarlardan debug edilebilirler. Bu işleme Remote Debugging adı verilmektedir.
  • InstallUtil.exe Windows Service uygulamalarının kurulması için kullanılan bir utility’dir. -u parametresiyle birlikte kullanıldığında service uninstall işlemi için de kullanılabilir.
  • Remoting server’larının Windows Service üzerinde host edilmesinin en büyük avantajı yüksek hata management’ı ve otomatik startup olanağıdır. Service’in hata alması durumunda nasıl bir davranış sergileyeceği developer tarafından belirlenebilir.
  • Performance monitoring .NET uygulamalarının hangi işlemi ne kadar zamanda yaptığı, AppDomain ve ya tüm .NET uygulamaları içerisinde (seçilen instance değerlerine bağlı olarak) kaç kere Exception throw edildiği gibi birçok runtime bilgisinin kolayca raporlanabilmesi için kullanılmaktadır.
  • System.Diagnostics.PerformanceCounter class’ı .NET uygulamaları içinde performance counter data’larına erişilebilmesine imkan tanımaktadır.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.