Обновление MySQL Connector/Net

Я пытаюсь опубликовать сайт у нашего хостинг-провайдера. Я получаю ошибку из-за того, что они допускают только среднее доверие, а MySQL, Connector / Net, который я использую, требует рефлексии для работы. К сожалению, отражение не допускается при среднем доверии.

После некоторых исследований я обнаружил, что новейшая версия MySQL Connector/Net может решить эту проблему. Connector / Net 6.6 включает в себя усовершенствования поддержки частичного доверия, позволяющие хостинговым службам развертывать приложения без установки библиотеки Connector / Net в GAC. Я думаю, что это решит мою проблему.

Итак, я удалил MySQL Connector/Net 6.4.4 и установил MySQL Connector/Net 6.6.4.

Когда я запускаю приложение в Visual Studio 2010, я получаю сообщение об ошибке:

ProviderIncompatibleException was unhandled by user code  

Сообщение

An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct.

InnerException является

The provider did not return a ProviderManifestToken string.

Все работает нормально, когда у меня установлен Connector / Net 6.4.4. Я могу получить доступ к базе данных и выполнить с ней операции чтения / записи / удаления.

У меня есть ссылка на следующее в проекте:

  • MySql.Data
  • MySql.Data.Entity
  • MySql.Web

Моя строка подключения в Web.config

<connectionStrings>
  <add name="AESSmartEntities" 
          connectionString="server=ec2-xxx-xx-xxx-xx.compute-1.amazonaws.com;
          user=root;
          database=nunya;
          port=3306;
          password=xxxxxxx;" 
          providerName="MySql.Data.MySqlClient" />
</connectionStrings>

Что я могу делать не так? Нужны ли какие-либо дополнительные настройки для работы с версией 6.6.4, которые не требовались в более старой версии 6.4.4?

1 ответ

Решение

Я также разместил этот вопрос на форуме MySQL. Вот ответ, который я получил:

Вы правы в том, что для работы с Medium Trust Соединитель / Сеть не обязательно должен быть в GAC, но у этого есть некоторые ограничения. В случае Entity Framework нашему драйверу требуется Reflection, как вы упомянули, для регистрации в качестве провайдера. Таким образом, он не может быть использован без этого разрешения. Вам необходимо добавить это разрешение на отражение только для доступа участника к вашей политике или установки драйвера в GAC.

Мы ищем другие способы регистрации провайдера для Entity Framework. До сих пор Connector может работать с ADO.Net с доверием Medium, но еще не EF. Мы сообщим вам, как только мы поддержим это без GAC для Medium Trust.

Другие вопросы по тегам