2010-07-05 12 views
61

मैं अपने वेब config में एक कनेक्शन स्ट्रिंग है भागने:web.config कनेक्शन स्ट्रिंग में बोली

<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" /> 

जैसा कि आप देख, वहाँ एक उद्धरण चिह्न (") पासवर्ड में है (अन्य विभाग से दिया मैं। Btw बदल सकते हैं नहीं इस उपयोगकर्ता पासवर्ड dB)

मैं इस कनेक्शन स्ट्रिंग में उद्धरण से बचने के लिए है

: मैं पहले से ही & quot की कोशिश की, स्ट्रिंग में यही काम नहीं किया - हलचल।?। .NET को तब ArgumenException मिला: "प्रारंभिक स्ट्रिंग का प्रारूप नहीं है इंडेक्स 57 से शुरू होने वाले विनिर्देश के अनुरूप। " 57 है जहां & quot; मेरे कनेक्शन स्ट्रिंग में है। मैंने पासवर्ड भाग को संलग्न करने का भी प्रयास किया - 'या तो काम नहीं किया।

भी करने की कोशिश की "" और \ "- web.config तो पार्स नहीं किया जा सकता है

समाधान के लिए धन्यवाद:

मैं दोहरे उद्धरण का एस्केपिंग गठबंधन करने के लिए था और में पासवर्ड डाल। एकल उद्धरण: " के बजाय &quot;

<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'" providerName="System.Data.SqlClient" /> 

उत्तर

78

उपयोग यह से बचने के लिए तो आप श

web.config एक XML फ़ाइल है। एक्सएमएल से बचने का उपयोग करें।

connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word" 

this फ़ोरम थ्रेड देखें।

अद्यतन:

&quot; काम करना चाहिए, लेकिन जैसा कि यह नहीं है, तो आप नेट के लिए अन्य स्ट्रिंग भागने दृश्यों में से कुछ की कोशिश की है? \" और ""?

अद्यतन 2:

connectionstring के लिए एकल उद्धरण का प्रयास करें:

connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word' 

या:

connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word' 

अद्यतन 3:

से(SqlConnection.ConnectionString संपत्ति):

मानों अर्धविराम, एकल उद्धरण कैरेक्टर, या दोहरे-उद्धरण वर्ण को शामिल करने के मूल्य डबल उद्धरण चिह्नों में बंद किया जाना चाहिए। यदि मूल्य में अर्धविराम और डबल-कोट वर्ण दोनों होते हैं, तो मूल्य एकल उद्धरण चिह्नों में संलग्न किया जा सकता है।

तो:

connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'" 

मुद्दा नहीं वेब के साथ है।कॉन्फ़िगरेशन, लेकिन कनेक्शन स्ट्रिंग का प्रारूप। एक कनेक्शन स्ट्रिंग में, यदि आपके पास " एक मान (कुंजी-मूल्य जोड़ी) में है, तो आपको ' में मान संलग्न करना होगा। इसलिए, काम नहीं करता है, Password='somepass"word' करता है।

+0

यह काम नहीं करता है। यह मोटे तौर पर काम करेगा, अगर यह सादे एक्सएमएल में था, लेकिन एक विशेषता मूल्य के भीतर नहीं। –

+0

@ सेबेस्टियन पीआर गिंगटर - अजीब बात यह है कि यह काम नहीं करता है। क्या आपने अन्य भागने के दृश्यों को आजमाया? – Oded

+0

हां। पूरे वेब.कॉन्फिग को "" और \ "का प्रयोग करते समय पार्स नहीं किया जा सकता है। & quot;" स्ट्रिंग के भीतर नहीं है और क्वेरी स्ट्रिंग को पार्स नहीं किया जा सकता है जिसके परिणामस्वरूप त्रुटि हुई है। यदि यह आसान था तो मैंने यहां नहीं पूछा होगा ;-) –

1

&quot; का उपयोग करें जो काम करना चाहिए।

+0

नहीं। काम नहीं करता यहां पूछने से पहले पहले ही यह कोशिश की गई ... पूछे नहीं गए ... –

42
connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word" 

के बाद से web.config एक्सएमएल है, तो आप पाँच विशेष वर्ण से बचें की जरूरत है:

&amp; ->&एम्परसेंड, U + 0026
&lt; -><बाईं कोण कोष्ठक, संकेत से कम, यू +003 सी
&gt; ->>सही कोण ब्रैकेट, साइन से अधिक, यू +003 ई
&quot; ->"उद्धरण चिह्न, U + 0022
&apos; ->'एपोस्ट्रोफ़ी, यू + 0027

+ एक समस्या नहीं है, मुझे लगता है।

+0

यह मेरे लिए, पासवर्ड में, web.config में संग्रहीत किया गया था। जाहिर है, जबकि एक ही समय में ट्रैक करने के लिए बहुत स्पष्ट नहीं है। एक Azure वेबसाइट आपको त्रुटि देता है जब यह web.config में होता है - "पृष्ठ प्रदर्शित नहीं किया जा सकता क्योंकि आंतरिक सर्वर त्रुटि आई है।" यह त्रुटि लॉग में कुछ भी लिखने के लिए प्रतीत नहीं होता है। प्रश्न के लिए ओपी के लिए धन्यवाद और आप इस अनुस्मारक के लिए धन्यवाद। –

3

यदि &quot; काम नहीं कर रहा है तो &#34; इसके बजाय प्रयास करें।