2013-08-19 6 views
2

У меня проблема, и я думаю, что правильный ответ поможет многим людям, которые имеют такую ​​же проблему. Потому что это обычная и не очень ответная проблема..NET 4.0 Средний уровень доверия и подключение MYSQL

Проблема заключается в настройке «Средний уровень доверия» в IIS.A. Несколько месяцев назад я закодировал свой сайт с настройкой «Полный уровень доверия» на моей локальной машине и когда я загрузил его на хост, который работал нормально. Но у моей хостинговой компании есть новое правило о уровне доверия, теперь они позволяют только «Средний уровень доверия».

Моя веб-страница сейчас не работает. Я пытался адаптировать свой сайт, но я понятия не имею, как это сделать. И это наверняка, многие люди тоже не знают. Итак, я расскажу, что я до сих пор, вы можете мне помочь?

Сначала я попытался изменил мою локальную конфигурацию, перейдя здесь,

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config

и открыл файл WebConfig, и изменил

<trust level="Full" originUrl="" /> 

в

<trust level="Medium" originUrl="" /> 

После этого только для тестирования я создал новый веб-сайт с ASP По умолчанию template.It был working.Then добавить mysql.dll как ссылки для подключения к Mysql database.But он забросил исключение безопасности с этим стеком:

[SecurityException:. Запрос на разрешение типа 'System.Security.Permissions.SecurityPermission, mscorlib, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b77a5c561934e089' неудавшейся] MySql.Data.MySqlClient.MySqlTrace .. cctor() +0

А что теперь? Не можем ли мы подключиться к базе данных mysql? Или есть решение? Я никогда не менял свой файл webconfig в папке проекта веб-сайта, мне нужно что-то изменить? Пожалуйста, помогите мне, ребята?

ответ

1

Привет всем Я в конечном счете нахожу решение моей проблемы, поэтому я постараюсь помочь тем людям, которые имеют одинаковые проблемы. Партийное доверие и средний уровень доверия - это то же самое, что и вы.

Мой первый шаг на вопрос абсолютно необходим. Не забудьте изменить свой уровень доверия на «Средний». После этого вам нужно получить правильную версию .Net Connector от The Oficial Website Будьте осторожны, чтобы выбрать версию, которую использует ваш хостинг-провайдер. Например, моя хостинговая компания использует Mysql Connector Net 6.5.4

Во-вторых, вам нужно настроить файл webconfig проектов, который будет использовать ваши DLL-файлы и получить необходимый разрешающий способ на уровне среднего уровня доверия.

Вам нужно добавить под своим <configuration> что-то вроде этого;

<mscorlib> 
    <security> 
     <policy> 
     <PolicyLevel version="1"> 
      <SecurityClasses> 
      <SecurityClass Name="MySqlClientPermission" Description="MySql.Data.MySqlClient.MySqlClientPermission, MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> 
      </SecurityClasses> 
     </PolicyLevel> 
     </policy> 
    </security> 
    </mscorlib> 

И если ваша система не добавляет его автоматически под вашим <system.web> вам нужно добавить;

<assemblies> 
    <add assembly="MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    <add assembly="MySql.Data.Entity, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    <add assembly="MySql.Web, Version=6.5.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    </assemblies> 

Иногда это шаги не может быть достаточно, и вы должны изменить web_mediumtrust.config под

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config 

Вы должны добавить эти строки под

<SecurityClasses> 
    <securityclass Name="MySqlClientPermission" Description="MySql.Data.MySqlClient.MySqlClientPermission, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 

и

<NamedPermissionSets> 
    <iPermission class = "MysqlClientPermission" version = "1"> 
    <add connectionString = "Server =; Database =;" restrictions = "User =; User Id =; Password =; Port =; Pooling =;" KeyRestrictionBehavior = "(Prevent Usage | Allow Only)" /> 
    </iPermission> 

Будьте c бойтесь версии, которую вы используете, не забывайте менять строки в соответствии с этим. Если до сих пор вы не можете понять, что там довольно полезная ссылка для вас

Trust Level Under the Partial Trust

0

Вот как я решил аналогичную проблему с попыткой получить MySql работать в целевой среде среды.

Мы все пробовали в «книге» и просто не могли заставить его работать!

Оказывается, что версия соединителя MySql является ключом. Спросите у веб-хостинга, какую версию MySqlClient они установили на своем сервере в GAC.

(GAC просто означает, что библиотека установлена ​​на сервере, так что можно ссылаться напрямую и без вас, чтобы загрузить MySql.Data.dll в папку бен последняя устанавливаемая версия доступна здесь:. http://dev.mysql.com/downloads/connector/net/) ,

После того как драйвер установлен на сервере в GAC нужно просто ссылаться на него в вашем файле web.config, как это, но заменить Version = 6.6.5.0 с веб-хостинга компании Версия:

<compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
    <add assembly="MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    </assemblies>  
</compilation> 

 Смежные вопросы

  • Нет связанных вопросов^_^