2010-09-29 11 views
39

मैं इकाई की रूपरेखा 4 का उपयोग कर रहा एक सरल अनुप्रयोग के लिए और निम्नलिखित कनेक्शन स्ट्रिंग में मेरी कनेक्शन साख बेक करना चाहते हैं:कनेक्शन स्ट्रिंग में ampersand कैसे शामिल करें?

<connectionStrings> 
    <add name="MyEntities"  
     connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost\DEV;Initial Catalog=MyDB;UserId=myUser;Password=jack&jill;MultipleActiveResultSets=True&quot;" 
     providerName="System.Data.EntityClient" /> 
</connectionStrings> 

हालांकि, पासवर्ड (जो मैं नहीं बदल सकते) एक ampersand में शामिल है। ASP.NET फेंकता है: Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY.

अगर मैं &amp; साथ पासवर्ड में एम्परसेंड की जगह, मैं एक SqlException: Login failed for user 'myUser'. आम तौर पर इस चाल काम करता है, लेकिन मेरा अनुमान है कि ऐसा इसलिए है क्योंकि यह तकनीकी रूप से एक कनेक्शन के अंदर एक कनेक्शन स्ट्रिंग है कुछ विफल हो रहा है स्ट्रिंग।

मुझे यहां क्या करना चाहिए? मेरी कक्षाओं के अधिकांश कोड की तरह शामिल हैं:

using (var context = new MyEntities()) { 
    // do work 
} 

अद्यतन: ऐसा लगता है कि साख मैं उपयोग कर रहा हूँ एक डोमेन खाते हैं, तो क्या मैं वास्तव में जरूरत है एक के बजाय कनेक्शन स्ट्रिंग में Integrated Security=True है पारण शब्द।

स्वीकृत उत्तर में दर्शाए गए एम्पर्सेंड को एन्कोड करना ठीक काम करना चाहिए, हालांकि मैंने इसका परीक्षण नहीं किया है।

उत्तर

75

आपको किसी भी XML दस्तावेज़ के लिए भागने के दृश्यों का उपयोग करना होगा, जो सभी .config फ़ाइलें हैं।

  • एम्पसेंड = & = &amp;
  • इससे बड़ा => = &gt;
  • से कम = < = &lt;
  • Apostrophe = '= &apos;
  • बोली = "= &quot;

आपका भी उपयोग कर सकते हैंटैग इतना है कि आप इन अवैध अक्षर

<![CDATA[ उपयोग कर सकते हैं ]]>

<connectionStrings> 
    <add name="MyEntities" connectionString=" 
     metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl; 
     provider=System.Data.SqlClient; 
     provider connection string=&quot; 
     Data Source=localhost\DEV; 
     Initial Catalog=MyDB;UserId=myUser; 
     Password=<![CDATA[jack&jill]]>; 
     MultipleActiveResultSets=True&quot;" 
     providerName="System.Data.EntityClient" /> 
</connectionStrings> 
+0

मैंने पहले ही कोशिश की है, जैसा कि मेरे प्रश्न में उल्लेख किया गया है। ऐसा लगता है कि गलत पासवर्ड एंटिटी फ्रेमवर्क के साथ भेजा जाता है। – user403830

+0

यह वास्तव में आपको काम पर लाने के लिए आवश्यक होना चाहिए। – hunter

+0

इसके अलावा, आपने अपने सर्वर के बाहर अपने कनेक्शनस्ट्रिंग में क्रेडेंशियल्स का उपयोग करके उस SQL ​​सर्वर इंस्टेंस में लॉगिंग करने का प्रयास किया है – hunter

0

…this is technically a connection string inside a connection string

साथ समाप्त होता है आप दो बार भागने प्रयास किया है?

&amp;amp; 
संबंधित मुद्दे