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 的副本放入其中:问题已解决!启动时没有更多错误。
我在 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 的副本放入其中:问题已解决!启动时没有更多错误。