Строка подключения, не работающая с MySQL

Я создаю REST API с помощью MySQL DB в visual studio 2015 in asp.net mvc 4.5. Я сделал каждый шаг, который необходим для запуска API с помощью MySQL, но я получаю это исключение.

{ "Сообщение": "Произошла ошибка.", "ExceptionMessage": " Формат строки инициализации не соответствует спецификации, начинающейся с индекса 121.", "ExceptionType": System.ArgumentException "," StackTrace ":" в System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String & keyname, String & keyvalue)\r\n в System.Data. Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, синтаксисы Hashtable, Boolean firstKey)\r\n в System.Data.Common.DbConnectionOptions..ctor(String connectionString, синтаксисы Hashtable, логическое использованиеOdbcRules)\r\n в System.Data.Common.DbConnectionStringBuilder.set_ConnectionString (String value)\r\n в MySql.Data.MySqlClient.MySqlConnectionStringBuilder..ctor(String connStr)\r\n на MySql.Data.MySqlClient.MySqlConnection.set_ConnectionString (значение строки )\r\n в System.Data.Entity.Infras tructure.Interception.DbConnectionDispatcher.b__18 (DbConnection t, DbConnectionPropertyInterceptionContext 1 c)\r\n at System.Data.Entity.Infrastructure.Interception.InternalDispatcher 1.Dispatch [TTarget, TInterceptionContext] (целевая цель, действие 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 в System.Data. Entity.Internal.LazyInternalConnection.InitializeFromConnectionStringSetting(ConnectionStringSettings appConfigConnection)\r\n в System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(имя строки, конфигурация AppConfig)\r\n в System.Data.Entity.Internal.LazyInternalConnection.Initialize()\r\n в System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel()\r\n в System.Data.Entity.Internal.LazyInternalContext.InitializeContext()\r\n в System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(тип entityType)\r\n в System.Data.Entity.Internal.Linq.InternalSet 1.Initialize()\r\n at System.Data.Entity.Internal.Linq.InternalSet 1.GetEnumerator()\r\n в System.Data.Entity.Infrastructure.DbQuery 1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()\r\n at System.Collections.Generic.List 1..ctor(IEnumerable 1 collection)\r\n at System.Linq.Enumerable.ToList[TSource](IEnumerable 1 sou rce)\r\n в RestWithMySQL.Controllers.ProductsController.Get() в D:\Work\DOT NET API\RestWithMySQL\RestWithMySQL\Controllers\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

Сбросьте строку подключения до минимума. Добавьте параметры назад и посмотрите, что заставляет его терпеть неудачу. Например, integrated security=true не будет работать с MySQL. Вместо этого вам нужно будет добавить password.

Форма здесь: ASP.NET MVC 4 EF5 с MySQL

Попробуй что-нибудь поподробнее:

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

Ответ 2

Должна ли ваша строка соединения содержать в ней еще одну цитату?

<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, рассмотрите эти шаги в этом ответе

Ответ 3

Вам не хватает закрывающего " в конце строки подключения.