Burak Selim Senyurt

Matematik Mühendisi Bir .Net,Ruby ve Python Severin Maceraları

Tek Fotoluk İpucu 131 - Servisim Yaşıyor mu?

Merhaba Arkadaşlar,

Böyle yeni bir şeyler öğrenmek için enerji bulamadığım vakitler oluyor zaman zaman. Ya çevremdekilerin ya da işlerin etkisi ile azalır enerjim. Bir şeyler öğrenmeyince de kendimi kötü hissettiğimden en azından genişletme metodu(Extension Method) yazmaya çalışayım da pas tutmayım derim. Tabii önce konu seçmek gerekir. Bu kez aklıma "bir servisin yaşayıp yaşamadığını nasıl anlarım?" sorusu takıldı. Mesela bir Uri için Http durum kodu bilgisinin 200 olmasını kontrol eden bir genişletme metodu yazabilirdim. Örneğin aşağıdaki fotoğrafta görüldüğü gibi.

Check isimli genişletme metodunu Uri tipine uygulayabiliyoruz. Metod geriye Http durum kodunu, servisin yaşayıp yaşamadığını ve olası bir exception varsa içeriğini döndürüyor. Tek yaptığımız ise söz konusu adrese bir talep göndermek. Sanki bir tarayıcıdan buraya HTTP Get çağrısı yapıyormuşuz gibi. Dönen bilgiyi HttpWebResponse örneği üzerinden değerlendiriyoruz.

Pek tabii fonksiyonun bağzı eksikleri var. Örneğin sadece servislerin yaşayıp yaşamadığını kontrol etmek istiyorsak asmx, html gibi içerikleri bu işin dışında tutmalıyız. Ya da servisin geçerli bir adres olup olmadığını denetlemeliyiz. Bizim metodumuz biraz genel bir metod oldu diyebiliriz. Yani herhangibir Uri'nin yaşayıp yaşamadığını öğreniyoruz. Ancak amaca özel hale getirmek daha mantıklı olabilir. Sadece WCF Servisleri için kontrol yapsın, sadece ASMX ler için yapsın, sadece REST tabanlı olanlar için yapsın ve benzerleri. Bu kararı da metoda biz söyleyebiliriz belki de. Bu kutsal görevleri siz değerli okurlarıma bırakıyorum. Canınız mı sıkılıyor? Buyrun düzeltilecek, uğraşılacak bir şeyler. Bir başka ipucunda görüşmek dileğiyle hepinize mutlu günler dilerim.

Yorumlar (1) -

  • Soner Gönül

    20.5.2016 09:16:18 | Yanıtla

    WCF servisler için de, ServiceController sınıfının Status özelliğini, ServiceControllerStatus enum'u ile kontrol edip kullanabiliriz kanımca.

Loading