2009-04-02 14 views
15

मैंने साइट की खोज की है, और जब मुझे कुछ बहुत उपयोगी जानकारी मिली, तो मुझे पता नहीं चला कि मेरे कोड के साथ क्या चल रहा है। मैं निम्नलिखित web.config है:ऐप सेटिंग्स और कॉन्फ़िगरेशन प्रबंधक। ऐपसेटिंग समस्या

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    </system.web> 

    <system.webServer> 
    </system.webServer> 

    <appSettings> 
    <add key="APIKey" value="23e24c73feed7ca0f6afd876575842de"/> 
    <add key="Secret" value="################################"/> 
    <add key="Callback" value="http://localhost:55994/"/> 
    <add key="Suffix" value="My3Words"/> 
    </appSettings> 
</configuration> 

मैं system.web और system.webServer में सामान बाहर कतरना है, लेकिन यह एक ASP.NET MVC अनुप्रयोग में उत्पन्न डिफ़ॉल्ट सेटिंग्स है।

मैं अनुभाग में कुंजी तक पहुंचने का प्रयास कर रहा हूं (यह एफबी कनेक्ट का उपयोग कर एक साधारण फेसबुक एप्लिकेशन है)।

मेरे कोड में, मैं निम्नलिखित पंक्ति है:

return ConfigurationManager.AppSettings["APIKey"]; 

और यह एक अशक्त लौटा रहा है। मैं यह नहीं समझ सकता कि क्या हो रहा है। मेरे पास आवश्यक है:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Mvc.Ajax; 
using System.Configuration; 

मेरी .cs फ़ाइल के शीर्ष पर। मुझे बहुत मजबूत संदेह है कि त्रुटि पोस्ट-कीबोर्ड मौजूद है (यानी मेरे दिमाग में), लेकिन मैं इसे हल नहीं कर सकता। कोई विचार?

return ConfigurationManager.AppSettings.Get("APIKey"); 
+0

आप एक बाहरी DLL से ConfigurationManager कर रहे हैं? – CLaRGe

+0

मैं एक .cs फ़ाइल से ConfigurationManager को कॉल कर रहा हूं जिसे मेरे होमकंट्रोलर.cs –

+1

से बुलाया जा रहा है, ऐसा नहीं है कि web.config और ConfigurationManager.AppSettings के बीच वास्तव में गलत हो सकता है, इसलिए यह एक अजीब बात है। Cehck करने के लिए आप निश्चित रूप से सही कॉन्फ़िगरेशन फ़ाइल का उपयोग कर रहे हैं अपना web.config अमान्य एक्सएमएल बनाने का प्रयास करें और सत्यापित करें कि आपकी वेबसाइट विफल हो गई है? – sipwiz

उत्तर

-1

आप कोशिश की है। यदि बिल्ड एक्शन "एंबेडेड रिसोर्स" है तो मैंने यह समस्या देखी है।

+1

कोशिश की ... यह काम नहीं किया –

1

चेक यकीन है कि web.config फ़ाइल की कार्रवाई बिल्ड "कोई नहीं" है बनाने के लिए:

+1

यह "सामग्री" पर सेट था लेकिन मैं बिना किसी प्रभाव के "कोई नहीं" पर सेट किया। –

1

क्या आपके machine.config के पास आवश्यक ऐपसेटिंग अनुभाग है। इसे कुछ दिखना चाहिए (संस्करण संख्या अलग होगी):

<configuration> 
    <configSections> 
     <section name="appSettings" 
      type="System.Configuration.NameValueFileSectionHandler, System,   Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </configSections> 
</configuration> 

क्या आप वाकई सही web.config का उपयोग कर रहे हैं? ConfigurationManager.AppSettings.Settings क्या दिखता है?

0

मैं लिखता हूं कि जब आप लिखते हैं तो उन्हें एक्सेस करने के लिए सही सिंटैक्स का उपयोग करना होगा: ConfigurationManager.AppSettings ["Key1"];

वेब config के लिए इस प्रारूप का प्रयास करें

<?xml version="1.0"?> 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> 
<appSettings> 
    <add key="Key1" value="Val1"/> 
    <add key="Key2" value="Val2"/> 
</appSettings> 
<connectionStrings> 
    ...... 
    ...... 
</connectionStrings> 
<system.web> 
    <sessionState mode="InProc" timeout="20"/> 
    <authorization> 
     ...... 
    </authorization> 

    <pages> 
     <namespaces> 
      <add namespace="System.Data"/> 
      <add namespace="System.Data.SqlClient"/> 
      <add namespace="System.IO"/> 
     </namespaces> 
    </pages> 
    <customErrors mode="Off"/> 
    <compilation debug="true"/></system.web> 
</configuration> 
28

आप उपयोग करने की कोशिश है WebConfigurationManager:

return System.Web.Configuration.WebConfigurationManager.AppSettings["APIKey"]; 

यह एक वेब अनुप्रयोग में config फ़ाइलों का उपयोग कर के लिए पसंदीदा विकल्प है - यह तरह बातें संभालती है नेस्टेड कॉन्फ़िगरेशन फ़ाइलें, आदि

+0

यह काम नहीं किया, भले ही मेरे पास एकाधिक web.config फ़ाइलें हों। मैंने को दूसरी फ़ाइल में स्थानांतरित कर दिया है और दोनों विधियां कुंजी प्राप्त करने के लिए ठीक काम करती हैं। उत्तर के लिए धन्यवाद ... मैं मूर्ख हूँ। –

+1

ठीक है, तो यह web.config कौन सा फ़ोल्डर था? क्या यह कम से कम (फ़ोल्डर पेड़ में) था जिस स्थान से कोड चल रहा था? आप मूर्ख नहीं हैं;) –

+0

मेरे पास @ ब्रैंडन के समान ही समस्या थी। यह जवाब मेरे लिए समाधान था। मेरी परियोजना एक डब्ल्यूसीएफ सेवा पुस्तकालय थी और जब मैंने इसे आईआईएस में होस्ट किया और कॉन्फ़िगरेशन को App.config से Web.config पर ले जाया गया। – kenny

8

विजुअल स्टूडियो एमवीसी के लिए 2 web.config फाइलें बनाता है। रूट पर 1, और दूसरा दृश्य फ़ोल्डर में।

0

मैं अपने समाधान में दो परियोजना है पहले मैं वर्ग पुस्तकालय परियोजना में app.config फ़ाइल जो सभी उदाहरणों सांत्वना आवेदन से कॉल मैं वर्ग lib परियोजना में कॉन्फ़िग फ़ाइल में इन प्रविष्टियों जोड़ा

<appSettings> 
<add key="userName" value="user2" /> 
<add key="emilsLimit" value="50" /> 
</appSettings> 

यह था जोड़ने क्लास लाइब्रेरी प्रोजेक्ट में कक्षा में इन्हें प्राप्त करने पर शून्य अपवाद फेंकना, लेकिन जब मैं क्लास लाइब्रेरी प्रोजेक्ट से app.config हटा देता हूं और कंसोल प्रोजेक्ट में जोड़ा जाता है तो यह काम करता है।चीयर्स

नोट: कक्षा lib परियोजना संदर्भ कंसोल में जोड़ा जाता है

4

आप यह सुनिश्चित करें कि आप सही Web.Config फ़ाइल का उपयोग कर रहे हैं? आप शायद अनुप्रयोग रूट पर एक का उपयोग करना चाहते हैं, न कि दृश्य निर्देशिका में से एक।

ASP.NET MVC and two Web.config files

+0

ऐसा करने के लिए एक असली मपेट की तरह लग रहा है! मूल बातें लगाने के लिए धन्यवाद :) – SM3RKY

संबंधित मुद्दे