2010-04-05 50 views
5

Örneğin, yeni bir InvalidCastException komutunu attığınızda istemci tarafında kanal durumunun arızalı olduğunu fark ettim. Ancak yeni bir FaultException atarsanız, istemci tarafında kanal durumu açılır.Wcf özel durum yönetimi

Merakla, birinin kanalı ve diğerini neden arızasının nedeni nedir?

cevap

12

FaultException WCF'de özel bir durumdur. Servis tarafında bir hata olduğunu, ancak aynı zamanda, kanalın hata olmadığını belirtti. Bu, bir sözleşmeden beklenenleri açığa çıkarmak için FaultContractAttribute numaralı telefonu kullanarak bu bilgileri sözleşmeye yerleştirebildiğiniz için bu mantıklıdır.

Diğer istisnalar WS dünyasında gerçekten çevrilebilir değildir. İstisnalar, teknolojiye özgü bir soyutlamadır ve her teknoloji yığını, bu soyutlamanın farklı bir temsiline sahiptir (ya da bazı durumlarda, hiç bir şekilde).

o bilinen değil gibi bir hata özel sunucu tarafında atılır değil , bu WCF çalışma zamanı tarafından olarak katastrofik görülüyor olan bir istisna ve kanal , hatalı olmalıdır söyleniyor

, eğer devam edip edemezsen. Ancak, FaultException kullanarak, neden atıldığı ve neden altta yatan kanalın etkilenip etkilenmediği ile ilgili koşullar hakkında bazı öngörülerinizin olduğunu ima eder. Üste |

+0

Açıklama için teşekkürler. Bunu düşünüyordum, sadece doğru olduğundan emin olmak istedim – pdiddy

+1

@pdiddy: Sorun değil, pek çok insan, WCF'nin .NET'deki her şeyi doğrudan WS dünyasına eşlemek anlamına gelmediğinin farkında değiller. Bu konuda bilmeniz gereken çok gerçek şeyler. – casperOne