SORU
6 Ocak 2009, Salı


.Gerekli Yapılandırma Ayarı Eksik Olduğunda Atmak için?NET:

Burada standart bir senaryo:

if(string.IsNullOrEmpty(Configuration.AppSettings["foobar"]))
   throw new SomeStandardException("Application not configured correctly, bozo.");

Sorun, tam olarak emin değilimhangiistisna SomeStandardException olmalıdır.

3.5 Çerçevesinde karıştırdım ve iki aday buldum: ConfigurationException ConfigurationErrorsException.

Sistem.Yapılandırma.ConfigurationException

Ne zaman durum özel durum yapılandırma sistem hatası var oluştu.

Açıklamalar

Bu ConfigurationException dahildir Uygulama Eğer atılan girişimleri okumak veya veri yazmak yapılandırma dosyası ama. başarısız. Bazı olası nedenler bu hatalı biçimlendirilmiş XML içerebilir için yapılandırma dosyası, dosya izin sorunları ve yapılandırma olmayan değerler ile özellikleri geçerli.

Not:

ConfigurationException nesne geriye dönük uyumluluk için korunur. ConfigurationErrorsException nesne yerine geçer yapılandırma sistemi.

Bu durum aslında ihtiyacım olan şey mükemmel görünüyor, ama işaretli eskimiş, yani atthay konusunda beni geçti.

Bu iyice kafa karıştırıcı ConfigurationErrorsException için bize getiriyor:

Sistem.Yapılandırma.ConfigurationErrorsException

Geçerli bir değer değil EnableSessionState değerleri.

Gördüğünüz gibi, belgeleri bir işe yaramıyor. (Hem yerel ve çevrimiçi Yardım bu.) Sınıfının bir sınav kendisi istediğim için ciddi abartılı olduğunu gösterir.

Özetle, uygulama yapılandırma ayarı eksik veya geçersiz bir değer içeriyorsa, atılması gereken standart bir istisna istiyorum. Çerçeve böyle bir istisna uygulamaları kullanmak için içine pişmiş uğradığını şaşırırsın. (Görünüşe göre yaptım, ama eski damgasını vurdu, ve bir şey tarafından değiştirildiçokdaha geniş kapsamda.)

Ne çözüm varsa, bunu sizler için kullanıyor, ve yalamak zorunda kalacağım ve bunun için kendi özel rulo?

Gündemin Düzenleyin

Bazı veya varsayılan bir değer sağlamak ve devam olup olmadığını sordu. Bazı durumlarda, evet, ve bu durumda, özel durum olmazdı. Ancak, bazı ayarları için, bu kural geçerli olmayacak. Örneğin: veritabanı sunucusu adları ve kimlik bilgileri, kimlik doğrulama sunucuları ve yüklü üçüncü parti uygulamalar için yollar.

Ayrıca belirtmekte fayda bu uygulama ben öncelikle çalışan bir konsol uygulaması çalışan Toplu Modu, ve istiyorum onu atmak için bir istisna olduğunu tarafından yakalanan ana yöntem ve oturum eğer uygun bir şey değil uygun bir şekilde yapılandırılmış. (Bu bana miras kaldı ve şu anda sadece eski kodvarsayarherşey bok gibi.)

CEVAP
6 Ocak 2009, Salı


Şahsen, nesne durumu ile ilgili bir sorun var - yapılandırma sistemi gibi InvalidOperationException, kullanmak istiyorum. Tüm bunlardan sonra, bu ayarları kod tarafından belirlenen izin vermemelisin ve de config değil mi? Önemli kısım burada app sıra vardı hayır o değil.bilgi gerekli bir parça bulunmayan config, ama.

Bana, ConfigurationException (yedek, ConfigurationErrorsException - yanıltıcı web docs rağmen) tasarruf hatalarını, okuma, vb. Yapılandırma.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010