7

テストのためにアプリケーションをサーバーにアップロードしたときに、この不可解なエラーが発生しました。私が調査したところ、競合する MySql.Data が原因のようです。アップロードしたコピーは 6.3.7.0 に属します。

どうすればこの問題を解決できますか? ビンに入れるだけでGACのものを「上書き」すると思いましたか?

NHibernate.Exceptions.GenericADOException: クエリを実行できませんでした [ SELECT this_.Id as Id18_0_, this_.Email as Email18_0_,

(プロパティなど)

FROM Userthis_ WHERE this_.Email = ? と this_.Password = ? ] Positional parameters: #0>WvewHQlNRyQNKjBAtPR1AwrWQj0nwfmIflO+r4mCJQWA1jZ9zRvefcGz6ZA69b3v #1>97403BA77F7C26BEC6B4F0A4F8509E02848CCD7DCF61D7DF5D79C3AAB2760E6AE1EB26F5D10D384E069F8C6089C47D3F1F0F17E7EBF30F71A68A39DF8863646F

[SQL: this_.Id を Id18_0_ として選択し、this_.Email を Email18_0_ として選択し、

(プロパティなど)

FROM Userthis_ WHERE this_.Email = ? そして this_.Password = ?] --->

System.InvalidCastException: [A]MySql.Data.MySqlClient.MySqlConnection は [B]MySql.Data.MySqlClient.MySqlConnection にキャストできません。タイプ A は、場所 'C:\Windows\assembly\GAC_MSIL\MySql.Data\6.2.3.0__c5687fc88969c44d\ のコンテキスト 'Default' の 'MySql.Data, Version=6.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' に由来します。 MySql.Data.dll'. タイプ B は、場所 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP. NET Files\root\cb584441\17e039bb\assembly\dl3\6b14fe89\804a4095_b2c0cc01\MySql.Data.DLL'.

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) at NHibernate.Loader.Loader.GetResultSet(IDbCommand st, Boolean autoDiscoverTypes, Boolean callable, RowSelection selection, ISessionImplementor session) at NHibernate.Loader.Loader.DoQuery(ISessionImplementor session, QueryParameters queryParameters, Boolean returnProxies) NHibernate.Loader.Loader.DoQueryAndInitializeNonLazyCollections (ISessionImplementor セッション、QueryParameters queryParameters、Boolean returnProxies) で NHibernate.Loader.Loader.DoList (ISessionImplementor セッション、QueryParameters queryParameters) --- 内部例外スタック トレースの終了 --- NHibernate.Loader.Loader.DoList(ISessionImplementor セッション、QueryParameters queryParameters) で NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor セッション、QueryParameters queryParameters) で NHibernate.Loader。 Loader.List(ISessionImplementor セッション、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() at NHibernate.Criterion.QueryOver`1.NHibernate.IQueryOver.SingleOrDefault()

4

3 に答える 3

0

予想どおり、MySql の 2 つの異なるバージョンを使用しています。バージョン6.2.3.0とバージョン6.3.7.0。この時点から、私は推測することしかできません: おそらく、異なるバージョンの MySql でビルドされた dll を使用している (そして、並べてインストールできる)。

于 2011-12-22T14:21:58.097 に答える