2012-03-25 10 views
16

मैं एप्लिकेशन पर लॉग इन करते समय उपयोगकर्ता प्राथमिकताओं को संग्रहीत करने के लिए सेटिंग्स फ़ाइल का उपयोग करने का प्रयास कर रहा हूं।वर्तमान कॉन्फ़िगरेशन सिस्टम उपयोगकर्ता-स्कोप्ड सेटिंग्स का समर्थन नहीं करता

मैं उन्हें उपयोगकर्ता (गुंजाइश) के रूप में परिभाषित लेकिन मैं

System.Configuration.ConfigurationErrorsException: The current configuration system does not support user-scoped settings.

क्या एक अच्छा समाधान हो सकता है मिल रहा है?

उत्तर

11

उपयोगकर्ता-स्कोप्ड सेटिंग्स वास्तव में किसी वेब एप्लिकेशन के लिए समर्थित नहीं हैं। और वे काम नहीं करेंगे, उपयोगकर्ता सेटिंग्स को सर्वर पर Users\<username>\... फ़ोल्डर के तहत सहेजना होगा।

आप वेब तकनीक की एक विस्तृत पसंद है:

  • लगातार कुकीज़
  • ASP.NET सदस्यता प्रोफाइल
  • अपनी खुद की Db
2

आप बस द्वारा आवेदन गुंजाइश सेटिंग्स लिखने योग्य बना सकते हैं Settings.Designer.cs में संपत्ति परिभाषा के लिए एक सेटटर जोड़ना। उदाहरण के लिए:

[global::System.Configuration.ApplicationScopedSettingAttribute()] 
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 
[global::System.Configuration.DefaultSettingValueAttribute("AdminContext")] 
public string DbContext 
{ 
    get { return ((string)(this["DbContext"])); } 
    set { this["DbContext"] = value; } } 

चेतावनी है कि Settings.Designer.cs स्वत: जनरेट है है, और इसलिए अगर आप डिजाइनर यूआई का उपयोग करें, अपने setters ओवरराइट किया जाएगा।

यह कंसोल और वेब अनुप्रयोगों में काम करता है।

+0

इस हालांकि सबसे अच्छा अभ्यास नहीं है, यह * करता * काम करते हैं और पूरी तरह से परीक्षण किया जाता है। यह देखते हुए कि मैंने शरीर में दृष्टिकोण को चेतावनी दी है, मुझे नहीं लगता कि यह नीचे वोट देने के लिए मान्य है। यह समाधान "अपने जोखिम पर उपयोग करें" लेकिन फिर भी, यह * एक समाधान है। – Shane

+0

*** सेटिंग्स। डिज़ाइनर सीएस ऑटो-जनरेटेड *** है। अच्छा समाधान नहीं है। –

14

जब मुझे यह समस्या थी, तो यह पता चला कि मेरे पास एक डीएल का संदर्भ था जिसमें सेटिंग्स.सेटिंग (या सेटिंग्स.डिज़ाइनर सीएस) फ़ाइल थी।

क्या होता है कि सेटिंग सेटिंग सेटिंग्स को संपादित करते समय, नीचे खाली रेखा पर क्लिक करने पर, टेम्पलेट जानकारी के साथ एक नई लाइन और एप्लिकेशन सेटिंग के बजाय एक डिफ़ॉल्ट उपयोगकर्ता सेटिंग जोड़ दी जाती है। यह एक अच्छी सुविधा है लेकिन आप देख सकते हैं कि टेम्पलेट को बदलने और अपनी नई सेटिंग जोड़ने के बाद, फिर फोकस खोने के लिए नीचे क्लिक करके एक नई टेम्पलेट लाइन जोड़ दी गई है और यदि आप ध्यान नहीं दे रहे हैं, तो आप गलती से उपयोगकर्ता सेटिंग जोड़ते हैं। जांचें कि क्या आपके पास एक संदर्भित डीएलएल में यह फ़ाइल है और किसी भी उपयोगकर्ता सेटिंग्स को हटा दें।

enter image description here