将 Web 应用程序部署到共享托管环境时,此环境配置为在部分或中等信任级别下运行其所有 .NET 应用程序,您可能无法在 GAC 中安装 MySQL Connector/NET 库。相反,您将对库的引用放在项目或解决方案内的bin
或文件夹中。lib
在这种情况下,您可以使用与库位于 GAC 中时不同的方式配置安全性。
Connector/NET 通常由在 Windows 环境中运行的应用程序使用,在 Windows 环境中,协议的默认通信是通过套接字或 TCP/IP 使用的。要运行此协议,必须在 Web 配置文件中具有所需的套接字权限,如下所示:
打开 medium trust policy web 配置文件,该文件应该在这个文件夹下:
%windir%\Microsoft.NET\Framework\{version}\CONFIG\web_mediumtrust.config
如果您使用的是 64 位框架安装,则
Framework64
在路径中使用而不是 。Framework
找到
SecurityClasses
标签:<SecurityClass Name="SocketPermission" Description="System.Net.SocketPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
向下滚动并查找以下内容
PermissionSet
:<PermissionSet version="1" Name="ASP.Net">
在其中添加以下内容
PermissionSet
:<IPermission class="SocketPermission" version="1" Unrestricted="true" />
此配置使您可以使用具有默认 Windows 协议 TCP/IP 的驱动程序,而不会出现任何安全问题。此方法仅支持 TCP/IP 协议,因此您不能使用任何其他类型的连接。
此外,由于
MySQLClientPermissions
该类未添加到中等信任策略中,因此您无法使用它。此配置是在没有 GAC 的情况下使用 Connector/NET 所需的最低配置。