当我将我的应用程序上传到服务器进行测试时,我收到了这个奇怪的莫名其妙的错误。根据我的研究,这似乎是由于冲突的MySql.Data造成的,我上传的副本属于: 6.3.7.0。
我该如何解决这个问题呢?我想只要把它放进垃圾箱就会“覆盖”GAC中的那个?
NHibernate.Exceptions.GenericADOException:无法执行查询[ SELECT this_.Id as Id18__,this_.Email as Email18__,
(etc属性)
从User this_,其中this_.Email =?和this_.Password =?]位置参数:#0>WvewHQlNRyQNKjBAtPR1AwrWQj0nwfmIflO+r4mCJQWA1jZ9zRvefcGz6ZA69b3v #1>97403BA77F7C26BEC6B4F0A4F8509E02848CCD7DCF61D7DF5D79C3AAB2760E6AE1EB26F5D10D384E069F8C6089C47D3F1F0F17E7EBF30F71A68A39DF8863646F
[SQL:选择this_.Id作为Id18__,this_.Email作为Email18__,
(etc属性)
从User this_,其中this_.Email =?和this_.Password = ?] ->
System.InvalidCastException: AMySql.Data.MySqlClient.MySqlConnection不能强制转换为BMySql.Data.MySqlClient.MySqlConnection。类型A源自位于位置'C:\Windows\assembly\GAC_MSIL\MySql.Data\6.2.3.0__c5687fc88969c44d\MySql.Data.dll'.的上下文'Default‘中的'MySql.Data,Version=6.2.3.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d类型B源自位于位置'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary Files\root\cb584441\17e039bb\assembly\dl3\6b14fe89\804a4095_b2c0cc01\MySql.Data.DLL'.的上下文'Default‘中的'MySql.Data,Version=6.3.7.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d’
在MySql.Data.MySqlClient.MySqlCommand.set_DbConnection(DbConnection值)在System.Data.Common.DbCommand.System.Data.IDbCommand.set_Connection(IDbConnection值处)在NHibernate.AdoNet.AbstractBatcher.Prepare(IDbCommand _ cmd)在NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand _ cmd)在NHibernate.Loader.Loader.GetResultSet(IDbCommand _ st、Boolean _ autoDiscoverTypes、Boolean _ callable、RowSelection _ selection、ISessionImplementor _ session)在NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections(ISessionImplementor _ session、QueryParameters _ QueryParameters、Boolean _ returnProxies)在NHibernate.Loader.Loader.DoQuery(ISessionImplementor _ session、queryParameters_ queryParameters,NHibernate.Loader.Loader.DoList(ISessionImplementor会话中的Boolean returnProxies),QueryParameters queryParameters) -内部异常堆栈跟踪结束-在NHibernate.Loader.Loader.DoList(ISessionImplementor会话中,NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor会话中的QueryParameters queryParameters),NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver.SingleOrDefault()会话中的QueryParameters queryParameters),QueryParameters queryParameters,ISet1 querySpaces, IType[] resultTypes) at NHibernate.Impl.SessionImpl.List(CriteriaImpl criteria, IList results) at NHibernate.Impl.CriteriaImpl.List(IList results) at NHibernate.Impl.CriteriaImpl.UniqueResult[T]() at NHibernate.Criterion.QueryOver1.SingleOrDefault()中
发布于 2014-05-10 07:54:21
我也遇到了同样的问题,但是几年后!
我的服务器已经在gac中安装了MySql连接器6.4.6版本,但我正在使用6.8.3版本,我收到了"cannot be cast error“。我通过将以下部分添加到.config文件中修复了它
<system.data>
<DbProviderFactories>
<!-- Removes the dll installed in gac-->
<remove invariant="MySql.Data.MySqlClient" />
<!-- Add the dll copied in the bin folder-->
<add name="MySQL" description="ADO.Net driver for MySQL" invariant="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/>
</DbProviderFactories>
</system.data>发布于 2011-12-22 22:21:58
正如预期所说,您正在使用两个不同版本的MySql。版本6.2.3.0和版本6.3.7.0。从现在开始,我只能猜测:也许您使用的是由不同版本的MySql构建的动态链接库(它允许并行安装)。
发布于 2020-02-23 02:38:58
我也遇到了同样的问题,版本18和版本19之间的冲突。在web.config中解决了这个问题。将新版本设置为您计算机中已有的版本。
<dependentAssembly>
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.0.18.0" newVersion="8.0.19.0" />
</dependentAssembly>https://stackoverflow.com/questions/8605158
复制相似问题