2017-09-12 28 views
12

के साथ काम नहीं कर रहा है मैं visual studio 2015 in asp.net mvc 4.5 में REST API बना रहा हूं। मैंने MySQL का उपयोग करके एपीआई चलाने के लिए आवश्यक प्रत्येक चरण को किया है, लेकिन मुझे यह अपवाद मिल रहा है।कनेक्शन स्ट्रिंग MySQL

{ "message": "एक त्रुटि हुई है।" "ExceptionMessage": "प्रारंभ स्ट्रिंग के स्वरूप सूचकांक 121 पर शुरू करने के लिए विनिर्देश अनुरूप नहीं है", "ExceptionType": "प्रणाली। ArgumentException "," StackTrace ":" System.Data.Common.DbConnectionOptions.GetKeyValuePair (स्ट्रिंग कनेक्शनस्ट्रिंग, इंट 32 वर्तमान स्थिति, स्ट्रिंगबिल्डर बफर, बूलियन उपयोग ओडीबीसीआरयूएलएस, स्ट्रिंग & कुंजी नाम, स्ट्रिंग & कुंजीव्यू) \ r \ n System.Data.Common पर। DbConnectionOptions.ParseInternal (हैशटेबल पार्सेटेबल, स्ट्रिंग कनेक्शनस्ट्रिंग, बूलियन बिल्ड चेन, हैशटेबल समानार्थक, बूलियन फर्स्टकी) \ r \ n System.Data.Common.DbConnectionOptions..ctor (स्ट्रिंग कनेक्शनस्ट्रिंग, हैशटेबल समानार्थी, बूलियन उपयोगऑडबीसीआरयूल्स) \ r \ n सिस्टम पर ।डेटा MySQL.Data.MySqlClient.MySqlConnection.set_ConnectionString (स्ट्रिंग मान) \ r \ n पर MySql.Data.MySqlClient.MySqlConnectionStringBuilder..ctor (स्ट्रिंग connStr) \ r \ n पर .Common.DbConnectionStringBuilder.set_ConnectionString (स्ट्रिंग मान) \ r \ n। n System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.b__18 (DbConnection टी पर, DbConnectionPropertyInterceptionContext 1 c)\r\n at System.Data.Entity.Infrastructure.Interception.InternalDispatcher 1.Dispatch [TTarget, TInterceptionContext] (TTarget लक्ष्य, कार्रवाई 2 operation, TInterceptionContext interceptionContext, Action 3 को क्रियान्वित करने, कार्रवाई 3 executed)\r\n at System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.SetConnectionString(DbConnection connection, DbConnectionPropertyInterceptionContext 1 interceptionContext) \ r \ n सिस्टम पर। Data.Entity.Internal.LazyInternalConnection.InitializeFromConnectionStringSetting (ConnectionStringSettings appConfigConnection) \ r \ n System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig (स्ट्रिंग नाम, AppConfig कॉन्फ़िगरेशन) \ r \ n System.Data.Entity.Internal.LazyInternalConnection पर प्रारंभ करें प्रारंभ करें() \ r \ n System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel() \ r \ System.Data.Entity.Internal.LazyInternalContext.InitializeContext() \ r \ n System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType (टाइप टाइप इकाई टाइप करें) \ r \ n System.Data.Entity.Internal.Linq पर। InternalSet 1.Initialize()\r\n at System.Data.Entity.Internal.Linq.InternalSet 1. System.Data.Entity.Infrastructure.DbQuery 1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()\r\n at System.Collections.Generic.List 1.GetEnumerator() \ r \ n 1.Get (IENumerable 1 collection)\r\n at System.Linq.Enumerable.ToList[TSource](IEnumerable 1 स्रोत) \ r \ n RestWithMySQL.Controllers.ProductsController.Get() में डी: \ कार्य \ डॉट नेट एपीआई \ RestWithMySQL \ RestWithMySQL \ नियंत्रकों \ ProductsController.cs: लाइन 19 "}

मुझे लगता है कि मेरी कनेक्शन स्ट्रिंग में एक समस्या है। मैंने इसकी खोज की है लेकिन सटीक समाधान नहीं मिला।

<connectionStrings> 
    <!--<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-RestWithMySQL-20170911031521.mdf;Initial Catalog=aspnet-RestWithMySQL-20170911031521;Integrated Security=True" providerName="System.Data.SqlClient" />--> 
    <add name="ProductEntities" connectionString="metadata=res://*/ProductsModel.csdl|res://*/ProductsModel.ssdl|res://*/ProductsModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot; server=localhost;user id=root;database=accurate_dev;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="MySql.Data.MySqlClient"/> 
    <!--<remove name="LocalMySqlServer" /><add name="LocalMySqlServer" connectionString="" providerName="MySql.Data.MySqlClient" />--> 
</connectionStrings> 

किसी भी मदद की अत्यधिक सराहना की जाएगी।

+1

यह सुनिश्चित नहीं है कि यह समस्या है, लेकिन आपने '"' '' –

उत्तर

7

अपनी कनेक्शन स्ट्रिंग को न्यूनतम से कम करें। विकल्पों को वापस जोड़ें और देखें कि यह असफल होने का कारण बनता है। उदाहरण के लिए integrated security=true MySQL के साथ काम नहीं करेगा। आपको इसके बजाय password जोड़ने की आवश्यकता होगी। यहाँ

प्रपत्र: ASP.NET MVC 4 EF5 with MySQL

इस के करीब कुछ प्रयास करें:

<add name="DefaultConnection" providerName="MySql.Data.MySqlClient" connectionString="Data Source=localhost;port=3306;Initial Catalog=api_db;User Id=root;password=''"/>

+0

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

1

अपने कनेक्शन स्ट्रिंग अंत में यह में एक और बोली नहीं करना चाहिए?

<connectionStrings> 
    <add name="ProductEntities" connectionString="metadata=res://*/ProductsModel.csdl|res://*/ProductsModel.ssdl|res://*/ProductsModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot; server=localhost;user id=root;database=accurate_dev;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="MySql.Data.MySqlClient"/> 
</connectionStrings> 
इसके अलावा

: आदेश, MySQL प्रदाता का उपयोग करने के लिए in this answer

0

प्रदान की इन चरणों का आप एक बंद & quot याद कर रहे हैं पर विचार करें; आपके कनेक्शन स्ट्रिंग के अंत में।

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