Aracılığıyla paylaş


WCF Hata İşleme

WCF uygulaması tarafından karşılaşılan hatalar üç gruptan birine aittir:

  1. İletişim Hataları

  2. Ara Sunucu/Kanal Hataları

  3. Uygulama Hataları

Ağ kullanılamıyorsa, istemci yanlış adres kullanıyorsa veya hizmet konağı gelen iletileri dinlemiyorsa iletişim hataları oluşur. Bu türdeki hatalar veya CommunicationExceptiontüretilmiş sınıflar olarak CommunicationException istemciye döndürülür.

Proxy/Kanal hataları, kanalın veya proxy'nin kendi içinde oluşan hatalardır. Bu türdeki hatalar şunlardır: kapatılmış bir ara sunucu veya kanal kullanmaya çalışmak, istemci ile hizmet arasında bir sözleşme uyuşmazlığı var veya istemcinin kimlik bilgileri hizmet tarafından reddedilir. Bu kategoride birçok farklı hata türü var ve burada listelenemeyecek kadar çok. Bu türdeki hatalar istemciye olduğu gibi döndürülür (özel durum nesnelerinde dönüştürme yapılmaz).

Uygulama hataları, bir hizmet işleminin yürütülmesi sırasında oluşur. Bu tür hatalar veya FaultException<TDetail>olarak FaultException istemciye gönderilir.

WCF'de hata işleme aşağıdakilerden biri veya daha fazlası tarafından gerçekleştirilir:

  • Oluşan özel durumu doğrudan işleme. Bu yalnızca iletişim ve ara sunucu/kanal hataları için yapılır.

  • Hata sözleşmelerini kullanma

  • Arabirimi uygulama IErrorHandler

  • Olayları işleme ServiceHost

Hata Sözleşmeleri

Hata sözleşmeleri, hizmet işlemi sırasında oluşabilecek hataları platformdan bağımsız bir şekilde tanımlamanızı sağlar. Varsayılan olarak, bir hizmet işleminin içinden atılan tüm özel durumlar istemciye nesne FaultException olarak döndürülür. Nesne FaultException çok az bilgi içerir. Bir hata sözleşmesi tanımlayıp hatayı olarak FaultException<TDetail>döndürerek istemciye gönderilen bilgileri denetleyebilirsiniz. Daha fazla bilgi için bkz . Sözleşmelerde ve Hizmetlerde Hataları Belirtme ve İşleme.

Ierrorhandler

Arabirim, IErrorHandler WCF uygulamanızın hatalara nasıl yanıt verdiği üzerinde daha fazla denetim sahibi olmanıza olanak tanır. İstemciye döndürülen hata iletisi üzerinde tam denetim sağlar ve günlüğe kaydetme gibi özel hata işleme gerçekleştirmenize olanak tanır. Hata İşleme ve Raporlama Üzerinde Denetimi Genişletme hakkında IErrorHandler daha fazla bilgi için

ServiceHost Olayları

ServiceHost sınıfı hizmetleri barındırıyor ve hataları işlemek için gerekli olabilecek çeşitli olayları tanımlıyor. Örneğin:

  1. Faulted

  2. UnknownMessageReceived

Daha fazla bilgi için bkz. ServiceHost.