У меня проблема с MySql.Data в частичной доверенной среде. Я добавил MySql.Data к GAC (установив его с MSI с сайта mysql.com). Как вы можете увидеть здесь:MySql.Data в GAC, еще SecurityException
>gacutil /l | grep -i mysql
MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d,
processorArchitecture=MSIL
MySql.Data.CF, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c4
4d, processorArchitecture=MSIL
MySql.Data.Entity, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc889
69c44d, processorArchitecture=MSIL
MySql.Web, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d,
processorArchitecture=MSIL
>
Я добавить следующее к моему web.config:
<configuration>
<system.web>
<trust level="Vevida"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
</assemblies>
</compilation>
</system.web>
</configuration>
Но я до сих пор получаю следующее исключение: Exception Details: System.Security.SecurityException: Request for the permission of type 'MySql.Data.MySqlClient.MySqlClientPermission, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' failed.
Он брошенное когда Я пытаюсь открыть соединение.
Я не уверен, что я могу проверить больше. Согласно документации MySql, мне нужно по крайней мере, следующие разрешения: System.Net.SocketPermission, System.Security.Permissions.ReflectionPermission, System.Net.DnsPermission и System.Security.Permissions.SecurityPermission
В моих уровень доверия I:
<IPermission
class="SocketPermission"
version="1"
Unrestricted="true">
</IPermission>
<IPermission
class="ReflectionPermission"
version="1"
Flags="RestrictedMemberAccess"/>
<IPermission
class="DnsPermission"
version="1"
Unrestricted="true"/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution,ControlPrincipal,ControlThread,SerializationFormatter"/>
Насколько я могу видеть в документации, этого достаточно. Также попытался установить SecurityPermission и ReflectionPermission на неограниченное, это не помогло.
Есть ли у вас идеи?
Так что я должен добавить MySqlClientPermission в моей конфигурации доверия? Я этого не понимаю. Мой хостинг-провайдер отправил мне свою конфигурацию, где я могу открыть соединение через эту сборку, и я не вижу этот класс в их конфигурации. Я попробую это позже в этот день –
Я думаю, что я делаю что-то неправильно, потому что, когда я добавляю MySqlClientPermission в свой файл доверия, все, что у меня есть, это ошибки. Где и что добавить? Не могу найти ничего об этом –
В дополнение к этому, я нахожу, что MySqlClientPermission - это просто «короткая версия» из остальных 4 разрешений, я уже установлен –