Я пытаюсь опубликовать веб-сайт у нашего хостинг-провайдера. Я получаю сообщение об ошибке из-за того, что они допускают только среднее доверие и Соединитель MySQL / Сеть что я использую требует отражения для работы. К сожалению, в среднем доверии отражение не допускается.
После некоторого исследования я обнаружил, что новейшая версия 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. Я могу получить доступ к базе данных и выполнить для нее действие чтения / записи / удаления.
В проекте есть ссылка на следующее:
Моя строка подключения в 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?
Я также разместил этот вопрос на форуме MySQL. Вот ответ, который я получил:
Вы правы в том, что Connector / Net не обязательно должен быть в GAC для работы со средним доверием, но это имеет некоторые ограничения. В случае Entity Framework нашему драйверу требуется Reflection, как вы его упомянули, для регистрации в качестве поставщика. Таким образом, его нельзя использовать без этого разрешения. Вам нужно добавить это разрешение на отражение только для доступа участников к вашей политике или установить драйвер в GAC.
Мы ищем другие способы зарегистрировать провайдера для Entity Framework. Пока Connector может работать с ADO.Net на уровне среднего доверия, но еще не работает с EF. Мы сообщим вам, как только это будет поддержано без GAC для среднего доверия.