具有 MySQL 的实体框架在部署到托管环境时引发异常

本文关键字:环境 异常 MySQL 实体 框架 部署 具有 | 更新日期: 2023-09-27 18:33:38

我部署了一个 ASP.NET 应用程序,它使用:.NET 4,5实体框架 6.1.3MySql.Data 6.9.8MySql.Data.Entity 6.9.8

它在我的开发环境中正常工作。

我在访问数据库时收到以下错误消息。

'MySql.Data.MySqlClient.MySqlClientFactory' 的类型初始值设定项 抛出了一个例外。

System.Security.SecurityException: System.Security.Permissions.SecurityPermission at MySql.Data.MySqlClient.MySqlClientFactory..cctor((

失败的第一个权限的类型为: System.Security.Permissions.SecurityPermission

失败的程序集的区域是:我的计算机

如果我从本地计算机上的IIS服务器访问托管的MySQL数据库,则一切正常。

我已尝试/检查:

  • 确保 DLL 的 CopyLocal 设置为 true
  • 向 web.config 添加trust level设置;这会导致应用程序在托管服务器上失败
  • 我有最新版本的 MySQL DLL
  • 二手谷歌
  • 将其作为托管公司的支持问题提出并搜索他们的常见问题解答

如何解决此问题?

具有 MySQL 的实体框架在部署到托管环境时引发异常

让人们知道您正在使用哪个托管服务提供商可能会有所帮助 - 他们自己可能遇到过类似的问题。

一些托管服务提供商对特定的配置设置很挑剔,例如您提到的信任设置。

一些托管服务提供商还为其客户提供快速帮助 - 这可能是许多新客户面临的问题,如果是这样,他们可以在常见问题解答/帮助部分中介绍如何解决此问题。如果常见问题解答/帮助部分中未涵盖,则客户支持可能会提供帮助。

我得到了托管公司的标准回复。解决方案似乎是使用 GAC 中的 DLL。但是,由于使用MySQL存在问题,原因有几个,我转而使用Azure SQL服务器。这是一个非常轻巧的应用程序,因此成本非常低。当我有一些空闲时间时,我会回到 MySQL 解决方案 - 并分享我在这里找到的任何内容。