Mono + ASP.NET + MySQL:有效,但总是为 'MySql.Data' 抛出初始 System.IO.FileNotFoundException

Mono + ASP.NET + MySQL: works, but always throws initial System.IO.FileNotFoundException for 'MySql.Data'

我在 Linux 服务器 运行 Apache 和 mod_mono 上使用 MySQL 数据库构建了一个 ASP.NET Web 应用程序 MySQL Connector/NET。一切都很好......但只有在抛出初始异常之后:如果“一段时间”没有任何人对此站点发出请求(我不清楚确切的持续时间和原因,但某个小时 - ish 超时似乎在起作用),那么新请求总是导致:

System.IO.FileNotFoundException
Could not load file or assembly 'MySql.Data' or one of its dependencies
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): mscorlib.
Exception stack trace:
   at System.AppDomain.Load (assemblyString, assemblySecurity, refonly)
   at System.AppDomain.Load (assemblyString)
   at (wrapper remoting-invoke-with-check) System.AppDomain:Load (string)
   at System.Reflection.Assembly.Load (assemblyString)
   at System.Web.Compilation.BuildManager.LoadAssembly (info, al)
   at System.Web.Compilation.BuildManager.GetReferencedAssemblies ()
   at System.Web.Compilation.BuildManager.CallPreStartMethods ()

简单的浏览器 reload/refresh 或重复请求总是成功,此后一切正常,即使关闭浏览器然后在“一段时间”过去之前启动新会话,即使不同的来自不同位置的用户发出请求 - 在最初的单个异常之后一切总是有效,只需再次发出请求就可以以某种方式“修复”。

关于 causes/fixes 的想法?给人的第一印象并不好!

错误仅在第一次尝试时出现这一事实意味着最终找到了文件(DLL)。 MySql.Data.dll 的唯一实例是(曾经)在 GAC 中。

但是 ASP.NET 网络应用程序还将使用应用程序根目录中 /bin 文件夹中的 DLL,因此我创建了 /bin 并将 MySql.Data.dll 的副本放入其中:问题已解决!启动时没有更多错误。