Поставщик не возвратил строку stringManifestToken
Я пытаюсь создать веб-приложение с помощью ASP.Net MVC3, Entity Framework и MySQL.
Я добавил следующий код в свой файл Web.Config.
<connectionStrings>
<add name="ContactContext" connectionString="server=localhost;database=contacts;uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
Я также создал модель "Человек", "ContactContext" в проекте "Contact_Me". Когда я пытаюсь создать "ContactController", включая контекст Person Model и Contact, он дает мне следующую ошибку:
"Невозможно получить метаданные для" Connect_Me.Models.Persons ". провайдер не вернул строку ProviderManifestToken"
Ошибка подключения к MySQL и MVC3\ProviderManifestToken, но я использую MySQL, это самый близкий вопрос к моему. Но ответ не решил мою проблему.
Заранее спасибо
Ответы
Ответ 1
Проблема связана с соединителем MySQL/Net.
Ранее я использовал соединитель MySQL/Net 6.3.5, и после того, как я его удалил и установил соединитель MySQL/Net 6.5.4, проблема была исправлена. Вы можете найти последние разъемы на http://www.mysql.com/products/connector/
Ответ 2
Я знаю, что это может быть очень просто для пары из вас, ребята, но это исключение также вызывается в тех случаях, когда EF не может найти строку соединения для использования.
Если вы работаете в многоуровневом приложении, убедитесь, что соединение String добавлено в клиентское приложение, а не в библиотеку классов, которая содержит код доступа к данным.
Только мои 2 цента.
Ответ 3
Я получил эту ошибку, когда мой сервер sql был фактически опущен. Поэтому убедитесь, что ваш сервер sql запущен и работает.
Ответ 4
Иногда эта проблема возникает из-за sslmode, а для меня решение заключалось в том, чтобы добавить sslmode = None в строку подключения
Мне пришлось внести небольшое изменение в строку подключения из
<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;sslmode=None;" providerName="MySql.Data.MySqlClient" />
to
<add name="Connection" connectionString="Server=SOMEHOST;Database=DB;Uid=USR1;Pwd=PASS1;sslmode=None;" providerName="MySql.Data.MySqlClient" />
Ответ 5
Может быть, ошибка в вашей строке подключения. Вы пытались подключиться к вашему экземпляру DB, используя приведенный выше вход. Попробуйте изменить строку подключения
connectionString="Data Source=.;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
используйте выше, если вы используете сервер sql, иначе, если вы используете экспресс-использование sql ниже одного
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=contacts;Integrated Security=True uid=root;pwd=password;" providerName="MySql.Data.MySqlClient"/>
Ответ 6
Несмотря на то, что на это дан ответ, но я столкнулся с одной и той же проблемой, и мой, если это было в строке соединения; У меня была часть "Интегрированная безопасность", когда я действительно не использовал ее; Я полагался на аутентификацию базы данных.
Я удалил часть "Integrated Security = True", и она отлично работала:)
Ответ 7
Перезагрузка компьютера работала для меня.
Пока это сообщение показывалось, я не обнаружил различий между моим компьютером [Windows 10] и тестовым сервером, на котором приложение было развернуто с той же конфигурацией, и там работало правильно и использовало ту же базу данных. Это означает, что проблема, вероятно, не была связана с базой данных, запущенной на тестовом сервере.
Стоит отметить, что некоторые обновления Windows ожидали перезапуска.